summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2019-02-25 21:11:25 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2019-02-25 21:11:25 +0100
commitbb815543a63e669ab79f397d2b16c0e7a7c0fdb9 (patch)
tree1663694ada3fb3f52b82abbaccad830557efe888
parent1c65b655603ac374c8cb3ce3bf8716921d89804b (diff)
(nw) sorry, take 2
screen.h: added constructor for SVG screens and removed a couple of macros (nw) mame\drivers: remove most MCFG and MACHINE_CONFIG macros from drivers starting with P, Q and R (nw)
-rw-r--r--src/emu/screen.h13
-rw-r--r--src/mame/drivers/hh_melps4.cpp34
-rw-r--r--src/mame/drivers/p112.cpp27
-rw-r--r--src/mame/drivers/p2000t.cpp55
-rw-r--r--src/mame/drivers/p8k.cpp26
-rw-r--r--src/mame/drivers/palestra.cpp4
-rw-r--r--src/mame/drivers/palmz22.cpp24
-rw-r--r--src/mame/drivers/pangofun.cpp18
-rw-r--r--src/mame/drivers/panicr.cpp28
-rw-r--r--src/mame/drivers/paradise.cpp62
-rw-r--r--src/mame/drivers/paranoia.cpp25
-rw-r--r--src/mame/drivers/pasha2.cpp36
-rw-r--r--src/mame/drivers/paso1600.cpp30
-rw-r--r--src/mame/drivers/pasopia.cpp19
-rw-r--r--src/mame/drivers/pasopia7.cpp44
-rw-r--r--src/mame/drivers/pass.cpp40
-rw-r--r--src/mame/drivers/pastelg.cpp56
-rw-r--r--src/mame/drivers/patapata.cpp31
-rw-r--r--src/mame/drivers/pbaction.cpp22
-rw-r--r--src/mame/drivers/pc.cpp170
-rw-r--r--src/mame/drivers/pc100.cpp13
-rw-r--r--src/mame/drivers/pc1512.cpp90
-rw-r--r--src/mame/drivers/pc2000.cpp2
-rw-r--r--src/mame/drivers/pc4.cpp23
-rw-r--r--src/mame/drivers/pc6001.cpp81
-rw-r--r--src/mame/drivers/pc8001.cpp48
-rw-r--r--src/mame/drivers/pc8401a.cpp22
-rw-r--r--src/mame/drivers/pc8801.cpp47
-rw-r--r--src/mame/drivers/pc88va.cpp46
-rw-r--r--src/mame/drivers/pcat_nit.cpp26
-rw-r--r--src/mame/drivers/pce220.cpp75
-rw-r--r--src/mame/drivers/pcfx.cpp17
-rw-r--r--src/mame/drivers/pcktgal.cpp2
-rw-r--r--src/mame/drivers/pcm.cpp19
-rw-r--r--src/mame/drivers/pcw16.cpp25
-rw-r--r--src/mame/drivers/pcxt.cpp33
-rw-r--r--src/mame/drivers/pdp11.cpp10
-rw-r--r--src/mame/drivers/pegasus.cpp26
-rw-r--r--src/mame/drivers/pentagon.cpp21
-rw-r--r--src/mame/drivers/perq.cpp5
-rw-r--r--src/mame/drivers/peyper.cpp13
-rw-r--r--src/mame/drivers/pg685.cpp59
-rw-r--r--src/mame/drivers/pgm.cpp2
-rw-r--r--src/mame/drivers/pgm3.cpp32
-rw-r--r--src/mame/drivers/photon.cpp30
-rw-r--r--src/mame/drivers/photon2.cpp27
-rw-r--r--src/mame/drivers/pinball2k.cpp20
-rw-r--r--src/mame/drivers/pingpong.cpp35
-rw-r--r--src/mame/drivers/pinkiri8.cpp37
-rw-r--r--src/mame/drivers/pirates.cpp28
-rw-r--r--src/mame/drivers/piratesh.cpp2
-rw-r--r--src/mame/drivers/pitagjr.cpp23
-rw-r--r--src/mame/drivers/pk8000.cpp29
-rw-r--r--src/mame/drivers/pk8020.cpp29
-rw-r--r--src/mame/drivers/pktgaldx.cpp80
-rw-r--r--src/mame/drivers/playmark.cpp224
-rw-r--r--src/mame/drivers/plus4.cpp12
-rw-r--r--src/mame/drivers/pmi80.cpp11
-rw-r--r--src/mame/drivers/pockchal.cpp22
-rw-r--r--src/mame/drivers/pockstat.cpp16
-rw-r--r--src/mame/drivers/pofo.cpp30
-rw-r--r--src/mame/drivers/poisk1.cpp22
-rw-r--r--src/mame/drivers/pokechmp.cpp20
-rw-r--r--src/mame/drivers/poker72.cpp25
-rw-r--r--src/mame/drivers/poly.cpp24
-rw-r--r--src/mame/drivers/poly88.cpp34
-rw-r--r--src/mame/drivers/polyplay.cpp17
-rw-r--r--src/mame/drivers/poolshrk.cpp27
-rw-r--r--src/mame/drivers/pooyan.cpp24
-rw-r--r--src/mame/drivers/popobear.cpp34
-rw-r--r--src/mame/drivers/popper.cpp21
-rw-r--r--src/mame/drivers/portrait.cpp29
-rw-r--r--src/mame/drivers/potgoldu.cpp12
-rw-r--r--src/mame/drivers/powerbal.cpp80
-rw-r--r--src/mame/drivers/powerstack.cpp9
-rw-r--r--src/mame/drivers/pp01.cpp27
-rw-r--r--src/mame/drivers/ppmast93.cpp38
-rw-r--r--src/mame/drivers/prestige.cpp51
-rw-r--r--src/mame/drivers/primo.cpp70
-rw-r--r--src/mame/drivers/prof180x.cpp23
-rw-r--r--src/mame/drivers/prof80.cpp2
-rw-r--r--src/mame/drivers/progolf.cpp38
-rw-r--r--src/mame/drivers/proteus.cpp15
-rw-r--r--src/mame/drivers/proteus3.cpp23
-rw-r--r--src/mame/drivers/pse.cpp10
-rw-r--r--src/mame/drivers/psion.cpp84
-rw-r--r--src/mame/drivers/pturn.cpp31
-rw-r--r--src/mame/drivers/puckpkmn.cpp32
-rw-r--r--src/mame/drivers/punchout.cpp58
-rw-r--r--src/mame/drivers/pv1000.cpp12
-rw-r--r--src/mame/drivers/pv2000.cpp10
-rw-r--r--src/mame/drivers/pv9234.cpp24
-rw-r--r--src/mame/drivers/pwrview.cpp19
-rw-r--r--src/mame/drivers/px4.cpp37
-rw-r--r--src/mame/drivers/px8.cpp43
-rw-r--r--src/mame/drivers/pzletime.cpp26
-rw-r--r--src/mame/drivers/ql.cpp42
-rw-r--r--src/mame/drivers/quakeat.cpp32
-rw-r--r--src/mame/drivers/queen.cpp8
-rw-r--r--src/mame/drivers/quizdna.cpp53
-rw-r--r--src/mame/drivers/quizo.cpp28
-rw-r--r--src/mame/drivers/quizpani.cpp31
-rw-r--r--src/mame/drivers/qvt70.cpp9
-rw-r--r--src/mame/drivers/qx10.cpp8
-rw-r--r--src/mame/drivers/r2dtank.cpp20
-rw-r--r--src/mame/drivers/rad_eu3a05.cpp28
-rw-r--r--src/mame/drivers/rad_eu3a14.cpp42
-rw-r--r--src/mame/drivers/radio86.cpp59
-rw-r--r--src/mame/drivers/rainbow.cpp56
-rw-r--r--src/mame/drivers/rampart.cpp28
-rw-r--r--src/mame/drivers/ramtek.cpp10
-rw-r--r--src/mame/drivers/rbisland.cpp75
-rw-r--r--src/mame/drivers/rbmk.cpp42
-rw-r--r--src/mame/drivers/rc702.cpp15
-rw-r--r--src/mame/drivers/rcorsair.cpp34
-rw-r--r--src/mame/drivers/rd110.cpp19
-rw-r--r--src/mame/drivers/realbrk.cpp64
-rw-r--r--src/mame/drivers/redalert.cpp48
-rw-r--r--src/mame/drivers/relief.cpp29
-rw-r--r--src/mame/drivers/retofinv.cpp69
-rw-r--r--src/mame/drivers/rex6000.cpp46
-rw-r--r--src/mame/drivers/rgum.cpp25
-rw-r--r--src/mame/drivers/riscpc.cpp131
-rw-r--r--src/mame/drivers/rltennis.cpp26
-rw-r--r--src/mame/drivers/rm380z.cpp52
-rw-r--r--src/mame/drivers/rmnimbus.cpp2
-rw-r--r--src/mame/drivers/rmt32.cpp23
-rw-r--r--src/mame/drivers/rockrage.cpp38
-rw-r--r--src/mame/drivers/rocnrope.cpp26
-rw-r--r--src/mame/drivers/rohga.cpp176
-rw-r--r--src/mame/drivers/rollext.cpp31
-rw-r--r--src/mame/drivers/rollrace.cpp40
-rw-r--r--src/mame/drivers/ron.cpp22
-rw-r--r--src/mame/drivers/roul.cpp33
-rw-r--r--src/mame/drivers/royalmah.cpp259
-rw-r--r--src/mame/drivers/rpunch.cpp63
-rw-r--r--src/mame/drivers/rt1715.cpp22
-rw-r--r--src/mame/drivers/rx78.cpp30
-rw-r--r--src/mame/drivers/rzone.cpp51
139 files changed, 2579 insertions, 2573 deletions
diff --git a/src/emu/screen.h b/src/emu/screen.h
index edf9629c21a..a68893b8ba2 100644
--- a/src/emu/screen.h
+++ b/src/emu/screen.h
@@ -183,6 +183,12 @@ public:
set_type(type);
set_color(color);
}
+ screen_device(const machine_config &mconfig, const char *tag, device_t *owner, const char *region)
+ : screen_device(mconfig, tag, owner, u32(0))
+ {
+ set_type(SCREEN_TYPE_SVG);
+ set_svg_region(region);
+ }
~screen_device();
// configuration readers
@@ -532,11 +538,6 @@ typedef device_type_iterator<screen_device> screen_device_iterator;
#define MCFG_SCREEN_TYPE(_type) \
downcast<screen_device &>(*device).set_type(SCREEN_TYPE_##_type);
-#define MCFG_SCREEN_SVG_ADD(_tag, _region) \
- MCFG_DEVICE_ADD(_tag, SCREEN, 0) \
- MCFG_SCREEN_TYPE(SVG) \
- downcast<screen_device &>(*device).set_svg_region(_region);
-
#define MCFG_SCREEN_RAW_PARAMS(_pixclock, _htotal, _hbend, _hbstart, _vtotal, _vbend, _vbstart) \
downcast<screen_device &>(*device).set_raw(_pixclock, _htotal, _hbend, _hbstart, _vtotal, _vbend, _vbstart);
@@ -551,8 +552,6 @@ typedef device_type_iterator<screen_device> screen_device_iterator;
#define MCFG_SCREEN_VISIBLE_AREA(_minx, _maxx, _miny, _maxy) \
downcast<screen_device &>(*device).set_visarea(_minx, _maxx, _miny, _maxy);
-#define MCFG_SCREEN_DEFAULT_POSITION(_xscale, _xoffs, _yscale, _yoffs) \
- downcast<screen_device &>(*device).set_default_position(_xscale, _xoffs, _yscale, _yoffs);
#define MCFG_SCREEN_UPDATE_DRIVER(_class, _method) \
downcast<screen_device &>(*device).set_screen_update(&_class::_method, #_class "::" #_method);
#define MCFG_SCREEN_UPDATE_DEVICE(_device, _class, _method) \
diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp
index 6f6f49451ce..044c7c2646b 100644
--- a/src/mame/drivers/hh_melps4.cpp
+++ b/src/mame/drivers/hh_melps4.cpp
@@ -294,8 +294,8 @@ static INPUT_PORTS_START( cfrogger )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr)
INPUT_PORTS_END
-MACHINE_CONFIG_START(cfrogger_state::cfrogger)
-
+void cfrogger_state::cfrogger(machine_config &config)
+{
/* basic machine hardware */
M58846(config, m_maincpu, 600_kHz_XTAL);
m_maincpu->read_k().set(FUNC(cfrogger_state::input_r));
@@ -306,17 +306,16 @@ MACHINE_CONFIG_START(cfrogger_state::cfrogger)
m_maincpu->write_t().set(FUNC(cfrogger_state::speaker_w));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(500, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 500-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(500, 1080);
+ screen.set_visarea(0, 500-1, 0, 1080-1);
TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
@@ -409,8 +408,8 @@ static INPUT_PORTS_START( gjungler )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr)
INPUT_PORTS_END
-MACHINE_CONFIG_START(gjungler_state::gjungler)
-
+void gjungler_state::gjungler(machine_config &config)
+{
/* basic machine hardware */
M58846(config, m_maincpu, 600_kHz_XTAL);
m_maincpu->read_k().set(FUNC(gjungler_state::input_r));
@@ -422,17 +421,16 @@ MACHINE_CONFIG_START(gjungler_state::gjungler)
m_maincpu->write_t().set(FUNC(gjungler_state::speaker_w));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(481, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 481-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(481, 1080);
+ screen.set_visarea(0, 481-1, 0, 1080-1);
TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
diff --git a/src/mame/drivers/p112.cpp b/src/mame/drivers/p112.cpp
index 178c57f5d9d..7b4c6cb4ad3 100644
--- a/src/mame/drivers/p112.cpp
+++ b/src/mame/drivers/p112.cpp
@@ -90,25 +90,24 @@ uint32_t p112_state::screen_update_p112(screen_device &screen, bitmap_ind16 &bit
return 0;
}
-MACHINE_CONFIG_START(p112_state::p112)
+void p112_state::p112(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z180, XTAL(16'000'000))
- MCFG_DEVICE_PROGRAM_MAP(p112_mem)
- MCFG_DEVICE_IO_MAP(p112_io)
-
+ Z180(config, m_maincpu, XTAL(16'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &p112_state::p112_mem);
+ m_maincpu->set_addrmap(AS_IO, &p112_state::p112_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(240, 320)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 320-1)
- MCFG_SCREEN_UPDATE_DRIVER(p112_state, screen_update_p112)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(240, 320);
+ screen.set_visarea(0, 240-1, 0, 320-1);
+ screen.set_screen_update(FUNC(p112_state::screen_update_p112));
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
-
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( p112 )
diff --git a/src/mame/drivers/p2000t.cpp b/src/mame/drivers/p2000t.cpp
index a226b2b8a14..1f5a0fccc51 100644
--- a/src/mame/drivers/p2000t.cpp
+++ b/src/mame/drivers/p2000t.cpp
@@ -221,20 +221,21 @@ READ8_MEMBER( p2000t_state::videoram_r )
}
/* Machine definition */
-MACHINE_CONFIG_START(p2000t_state::p2000t)
+void p2000t_state::p2000t(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2500000)
- MCFG_DEVICE_PROGRAM_MAP(p2000t_mem)
- MCFG_DEVICE_IO_MAP(p2000t_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", p2000t_state, p2000_interrupt)
+ Z80(config, m_maincpu, 2500000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &p2000t_state::p2000t_mem);
+ m_maincpu->set_addrmap(AS_IO, &p2000t_state::p2000t_io);
+ m_maincpu->set_vblank_int("screen", FUNC(p2000t_state::p2000_interrupt));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_SIZE(40 * 12, 24 * 20)
- MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 24 * 20 - 1)
- MCFG_SCREEN_UPDATE_DEVICE("saa5050", saa5050_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_size(40 * 12, 24 * 20);
+ screen.set_visarea(0, 40 * 12 - 1, 0, 24 * 20 - 1);
+ screen.set_screen_update("saa5050", FUNC(saa5050_device::screen_update));
saa5050_device &saa5050(SAA5050(config, "saa5050", 6000000));
saa5050.d_cb().set(FUNC(p2000t_state::videoram_r));
@@ -242,28 +243,28 @@ MACHINE_CONFIG_START(p2000t_state::p2000t)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
/* Machine definition */
-MACHINE_CONFIG_START(p2000m_state::p2000m)
+void p2000m_state::p2000m(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2500000)
- MCFG_DEVICE_PROGRAM_MAP(p2000m_mem)
- MCFG_DEVICE_IO_MAP(p2000t_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", p2000m_state, p2000_interrupt)
+ Z80(config, m_maincpu, 2500000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &p2000m_state::p2000m_mem);
+ m_maincpu->set_addrmap(AS_IO, &p2000m_state::p2000t_io);
+ m_maincpu->set_vblank_int("screen", FUNC(p2000m_state::p2000_interrupt));
config.m_minimum_quantum = attotime::from_hz(60);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(80 * 12, 24 * 20)
- MCFG_SCREEN_VISIBLE_AREA(0, 80 * 12 - 1, 0, 24 * 20 - 1)
- MCFG_SCREEN_UPDATE_DRIVER(p2000m_state, screen_update_p2000m)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(80 * 12, 24 * 20);
+ screen.set_visarea(0, 80 * 12 - 1, 0, 24 * 20 - 1);
+ screen.set_screen_update(FUNC(p2000m_state::screen_update_p2000m));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_p2000m);
PALETTE(config, m_palette, FUNC(p2000m_state::p2000m_palette), 4);
@@ -271,7 +272,7 @@ MACHINE_CONFIG_START(p2000m_state::p2000m)
/* sound hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
ROM_START(p2000t)
diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp
index ca0f224b832..79efb9f0aae 100644
--- a/src/mame/drivers/p8k.cpp
+++ b/src/mame/drivers/p8k.cpp
@@ -416,7 +416,8 @@ GFXDECODE_END
****************************************************************************/
-MACHINE_CONFIG_START(p8k_state::p8k)
+void p8k_state::p8k(machine_config &config)
+{
/* basic machine hardware */
z80_device& maincpu(Z80(config, "maincpu", 16_MHz_XTAL / 4));
maincpu.set_daisy_config(p8k_daisy_chain);
@@ -481,17 +482,17 @@ MACHINE_CONFIG_START(p8k_state::p8k)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 3250)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-MACHINE_CONFIG_END
+ BEEP(config, "beeper", 3250).add_route(ALL_OUTPUTS, "mono", 0.5);
+}
-MACHINE_CONFIG_START(p8k_state::p8k_16)
+void p8k_state::p8k_16(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z8001, XTAL(4'000'000) )
- MCFG_DEVICE_PROGRAM_MAP(p8k_16_memmap)
- MCFG_DEVICE_DATA_MAP(p8k_16_datamap)
- MCFG_DEVICE_IO_MAP(p8k_16_iomap)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("p8k_16_daisy", p8k_16_daisy_device, irq_callback)
+ Z8001(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &p8k_state::p8k_16_memmap);
+ m_maincpu->set_addrmap(AS_DATA, &p8k_state::p8k_16_datamap);
+ m_maincpu->set_addrmap(AS_IO, &p8k_state::p8k_16_iomap);
+ m_maincpu->set_irq_acknowledge_callback("p8k_16_daisy", FUNC(p8k_16_daisy_device::irq_callback));
P8K_16_DAISY(config, m_daisy, 0);
m_daisy->set_daisy_config(p8k_16_daisy_chain);
@@ -531,9 +532,8 @@ MACHINE_CONFIG_START(p8k_state::p8k_16)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 3250)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-MACHINE_CONFIG_END
+ BEEP(config, "beeper", 3250).add_route(ALL_OUTPUTS, "mono", 0.5);
+}
/* ROM definition */
ROM_START( p8000 )
diff --git a/src/mame/drivers/palestra.cpp b/src/mame/drivers/palestra.cpp
index cac0d842f5f..a4c188675fd 100644
--- a/src/mame/drivers/palestra.cpp
+++ b/src/mame/drivers/palestra.cpp
@@ -72,8 +72,8 @@ INPUT_PORTS_END
MACHINE_CONFIG_START(palestra_state::palestra)
- MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
- MCFG_NETLIST_SETUP(palestra)
+ NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK);
+ m_maincpu->set_constructor(netlist_palestra);
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq")
diff --git a/src/mame/drivers/palmz22.cpp b/src/mame/drivers/palmz22.cpp
index a0548582971..9afea7cc2c3 100644
--- a/src/mame/drivers/palmz22.cpp
+++ b/src/mame/drivers/palmz22.cpp
@@ -288,19 +288,19 @@ void palmz22_state::init_palmz22()
{
}
-MACHINE_CONFIG_START(palmz22_state::palmz22)
- MCFG_DEVICE_ADD(m_maincpu, ARM920T, 266000000)
- MCFG_DEVICE_PROGRAM_MAP(map)
-
- MCFG_PALETTE_ADD("palette", 32768)
+void palmz22_state::palmz22(machine_config &config)
+{
+ ARM920T(config, m_maincpu, 266000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &palmz22_state::map);
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(160, 160)
- MCFG_SCREEN_VISIBLE_AREA(0, 160 - 1, 0, 160 - 1)
+ PALETTE(config, "palette").set_entries(32768);
- MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(160, 160);
+ screen.set_visarea(0, 160 - 1, 0, 160 - 1);
+ screen.set_screen_update("s3c2410", FUNC(s3c2410_device::screen_update));
S3C2410(config, m_s3c2410, 12000000);
m_s3c2410->set_palette_tag("palette");
@@ -317,7 +317,7 @@ MACHINE_CONFIG_START(palmz22_state::palmz22)
NAND(config, m_nand, 0);
m_nand->set_nand_type(nand_device::chip::K9F5608U0D_J);
m_nand->rnb_wr_callback().set(m_s3c2410, FUNC(s3c2410_device::frnb_w));
-MACHINE_CONFIG_END
+}
static INPUT_PORTS_START( palmz22 )
PORT_START( "PENB" )
diff --git a/src/mame/drivers/pangofun.cpp b/src/mame/drivers/pangofun.cpp
index fb0478d8aa8..cf2895b11bd 100644
--- a/src/mame/drivers/pangofun.cpp
+++ b/src/mame/drivers/pangofun.cpp
@@ -179,21 +179,21 @@ void pangofun_state::machine_start()
{
}
-MACHINE_CONFIG_START(pangofun_state::pangofun)
+void pangofun_state::pangofun(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I486, 25000000 ) /* I486 ?? Mhz (25 according to POST) */
- MCFG_DEVICE_PROGRAM_MAP(pcat_map)
- MCFG_DEVICE_IO_MAP(pcat_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ I486(config, m_maincpu, 25000000); /* I486 ?? Mhz (25 according to POST) */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pangofun_state::pcat_map);
+ m_maincpu->set_addrmap(AS_IO, &pangofun_state::pcat_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
/* video hardware */
pcvideo_vga(config);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ subdevice<screen_device>("screen")->set_refresh_hz(60);
+ subdevice<screen_device>("screen")->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
pcat_common(config);
-MACHINE_CONFIG_END
+}
ROM_START(pangofun)
diff --git a/src/mame/drivers/panicr.cpp b/src/mame/drivers/panicr.cpp
index b80c1171430..b22d278d528 100644
--- a/src/mame/drivers/panicr.cpp
+++ b/src/mame/drivers/panicr.cpp
@@ -602,22 +602,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(panicr_state::scanline)
m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xc8/4);
}
-MACHINE_CONFIG_START(panicr_state::panicr)
- MCFG_DEVICE_ADD("maincpu", V20,MASTER_CLOCK/2) /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */
- MCFG_DEVICE_PROGRAM_MAP(panicr_map)
+void panicr_state::panicr(machine_config &config)
+{
+ V20(config, m_maincpu, MASTER_CLOCK/2); /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */
+ m_maincpu->set_addrmap(AS_PROGRAM, &panicr_state::panicr_map);
TIMER(config, "scantimer").configure_scanline(FUNC(panicr_state::scanline), "screen", 0, 1);
- MCFG_DEVICE_ADD("t5182", T5182, 0)
-
+ T5182(config, m_t5182, 0);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
-// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(panicr_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(32*8, 32*8);
+// m_screen->set_visarea(0*8, 32*8-1, 0*8, 32*8-1);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(panicr_state::screen_update));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_panicr);
PALETTE(config, m_palette, FUNC(panicr_state::panicr_palette), 256 * 4, 256);
@@ -629,7 +629,7 @@ MACHINE_CONFIG_START(panicr_state::panicr)
ymsnd.irq_handler().set(m_t5182, FUNC(t5182_device::ym2151_irq_handler));
ymsnd.add_route(0, "mono", 1.0);
ymsnd.add_route(1, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( panicr )
diff --git a/src/mame/drivers/paradise.cpp b/src/mame/drivers/paradise.cpp
index bf93a4dd828..4c73aef6164 100644
--- a/src/mame/drivers/paradise.cpp
+++ b/src/mame/drivers/paradise.cpp
@@ -731,23 +731,23 @@ INTERRUPT_GEN_MEMBER(paradise_state::irq)
m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);
}
-MACHINE_CONFIG_START(paradise_state::paradise)
-
+void paradise_state::paradise(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* Z8400B - 6mhz Verified */
- MCFG_DEVICE_PROGRAM_MAP(paradise_map)
- MCFG_DEVICE_IO_MAP(paradise_io_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(paradise_state, irq, 4*54) /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */
+ Z80(config, m_maincpu, XTAL(12'000'000)/2); /* Z8400B - 6mhz Verified */
+ m_maincpu->set_addrmap(AS_PROGRAM, &paradise_state::paradise_map);
+ m_maincpu->set_addrmap(AS_IO, &paradise_state::paradise_io_map);
+ m_maincpu->set_periodic_int(FUNC(paradise_state::irq), attotime::from_hz(4*54)); /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(54) /* 54 verified */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-1-16)
- MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_paradise)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(54); /* 54 verified */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */);
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 0+16, 256-1-16);
+ m_screen->set_screen_update(FUNC(paradise_state::screen_update_paradise));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_paradise);
PALETTE(config, m_palette).set_entries(0x800 + 16);
@@ -756,34 +756,32 @@ MACHINE_CONFIG_START(paradise_state::paradise)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ OKIM6295(config, "oki1", XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); /* verified on pcb */
- MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki2, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); /* verified on pcb */
+}
-MACHINE_CONFIG_START(paradise_state::tgtball)
+void paradise_state::tgtball(machine_config &config)
+{
paradise(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(tgtball_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &paradise_state::tgtball_map);
+}
-MACHINE_CONFIG_START(paradise_state::torus)
+void paradise_state::torus(machine_config &config)
+{
paradise(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(torus_map)
- MCFG_DEVICE_IO_MAP(torus_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &paradise_state::torus_map);
+ m_maincpu->set_addrmap(AS_IO, &paradise_state::torus_io_map);
m_gfxdecode->set_info(gfx_torus);
m_screen->set_screen_update(FUNC(paradise_state::screen_update_torus));
config.device_remove("oki2");
-MACHINE_CONFIG_END
+}
void paradise_state::madball(machine_config &config)
{
@@ -794,14 +792,14 @@ void paradise_state::madball(machine_config &config)
m_screen->set_screen_update(FUNC(paradise_state::screen_update_madball));
}
-MACHINE_CONFIG_START(paradise_state::penky)
+void paradise_state::penky(machine_config &config)
+{
paradise(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(torus_map)
- MCFG_DEVICE_IO_MAP(torus_io_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &paradise_state::torus_map);
+ m_maincpu->set_addrmap(AS_IO, &paradise_state::torus_io_map);
+}
void paradise_state::penkyi(machine_config &config)
diff --git a/src/mame/drivers/paranoia.cpp b/src/mame/drivers/paranoia.cpp
index 5c215799342..affe48db73e 100644
--- a/src/mame/drivers/paranoia.cpp
+++ b/src/mame/drivers/paranoia.cpp
@@ -165,7 +165,8 @@ WRITE_LINE_MEMBER(paranoia_state::i8155_timer_out)
//logerror("Timer out %d\n", state);
}
-MACHINE_CONFIG_START(paranoia_state::paranoia)
+void paranoia_state::paranoia(machine_config &config)
+{
/* basic machine hardware */
H6280(config, m_maincpu, PCE_MAIN_CLOCK/3);
m_maincpu->set_addrmap(AS_PROGRAM, &paranoia_state::pce_mem);
@@ -177,13 +178,13 @@ MACHINE_CONFIG_START(paranoia_state::paranoia)
config.m_minimum_quantum = attotime::from_hz(60);
- MCFG_DEVICE_ADD("sub", I8085A, 18000000/3)
- MCFG_DEVICE_PROGRAM_MAP(paranoia_8085_map)
- MCFG_DEVICE_IO_MAP(paranoia_8085_io_map)
+ i8085a_cpu_device &sub(I8085A(config, "sub", 18000000/3));
+ sub.set_addrmap(AS_PROGRAM, &paranoia_state::paranoia_8085_map);
+ sub.set_addrmap(AS_IO, &paranoia_state::paranoia_8085_io_map);
- MCFG_DEVICE_ADD("sub2", Z80, 18000000/6)
- MCFG_DEVICE_PROGRAM_MAP(paranoia_z80_map)
- MCFG_DEVICE_IO_MAP(paranoia_z80_io_map)
+ z80_device &sub2(Z80(config, "sub2", 18000000/6));
+ sub2.set_addrmap(AS_PROGRAM, &paranoia_state::paranoia_z80_map);
+ sub2.set_addrmap(AS_IO, &paranoia_state::paranoia_z80_io_map);
i8155_device &i8155(I8155(config, "i8155", 1000000 /*?*/));
i8155.out_pa_callback().set(FUNC(paranoia_state::i8155_a_w));
@@ -192,10 +193,10 @@ MACHINE_CONFIG_START(paranoia_state::paranoia)
i8155.out_to_callback().set(FUNC(paranoia_state::i8155_timer_out));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242)
- MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update )
- MCFG_SCREEN_PALETTE("huc6260")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242);
+ screen.set_screen_update(FUNC(pce_common_state::screen_update));
+ screen.set_palette(m_huc6260);
HUC6260(config, m_huc6260, PCE_MAIN_CLOCK);
m_huc6260->next_pixel_data().set("huc6270", FUNC(huc6270_device::next_pixel));
@@ -209,7 +210,7 @@ MACHINE_CONFIG_START(paranoia_state::paranoia)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
-MACHINE_CONFIG_END
+}
ROM_START(paranoia)
ROM_REGION( 0x40000, "maincpu", 0 )
diff --git a/src/mame/drivers/pasha2.cpp b/src/mame/drivers/pasha2.cpp
index 9acbc634bb2..5885b1c6aba 100644
--- a/src/mame/drivers/pasha2.cpp
+++ b/src/mame/drivers/pasha2.cpp
@@ -398,41 +398,39 @@ void pasha2_state::machine_reset()
m_vbuffer = 0;
}
-MACHINE_CONFIG_START(pasha2_state::pasha2)
-
+void pasha2_state::pasha2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", E116XT, 20000000*4) /* 4x internal multiplier */
- MCFG_DEVICE_PROGRAM_MAP(pasha2_map)
- MCFG_DEVICE_IO_MAP(pasha2_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pasha2_state, irq0_line_hold)
+ E116XT(config, m_maincpu, 20000000*4); /* 4x internal multiplier */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pasha2_state::pasha2_map);
+ m_maincpu->set_addrmap(AS_IO, &pasha2_state::pasha2_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pasha2_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", AT89C52, 12000000) /* clock from docs */
+ AT89C52(config, m_audiocpu, 12000000); /* clock from docs */
/* TODO : ports are unimplemented; P0,P1,P2,P3 and Serial Port Used */
EEPROM_93C46_16BIT(config, "eeprom");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(512, 512)
- MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(pasha2_state, screen_update_pasha2)
- MCFG_SCREEN_PALETTE(m_palette)
+ 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(512, 512);
+ screen.set_visarea(0, 383, 0, 239);
+ screen.set_screen_update(FUNC(pasha2_state::screen_update_pasha2));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_entries(0x200);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ OKIM6295(config, m_oki[0], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ OKIM6295(config, m_oki[1], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
//and ATMEL DREAM SAM9773
-MACHINE_CONFIG_END
+}
ROM_START( pasha2 )
ROM_REGION16_BE( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */
diff --git a/src/mame/drivers/paso1600.cpp b/src/mame/drivers/paso1600.cpp
index 010e921acaa..e01e46d17c4 100644
--- a/src/mame/drivers/paso1600.cpp
+++ b/src/mame/drivers/paso1600.cpp
@@ -304,25 +304,25 @@ WRITE8_MEMBER(paso1600_state::pc_dma_write_byte)
space.write_byte(offset, data);
}
-MACHINE_CONFIG_START(paso1600_state::paso1600)
+void paso1600_state::paso1600(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8086, 16000000/2)
- MCFG_DEVICE_PROGRAM_MAP(paso1600_map)
- MCFG_DEVICE_IO_MAP(paso1600_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
+ I8086(config, m_maincpu, 16000000/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &paso1600_state::paso1600_map);
+ m_maincpu->set_addrmap(AS_IO, &paso1600_state::paso1600_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_DRIVER(paso1600_state, screen_update_paso1600)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
+ screen.set_screen_update(FUNC(paso1600_state::screen_update_paso1600));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_paso1600);
- MCFG_PALETTE_ADD("palette", 8)
-// MCFG_PALETTE_INIT(black_and_white)
+ PALETTE(config, m_palette).set_entries(8);
/* Devices */
h46505_device &crtc(H46505(config, "crtc", 16000000/4)); /* unknown clock, hand tuned to get ~60 fps */
@@ -336,7 +336,7 @@ MACHINE_CONFIG_START(paso1600_state::paso1600)
AM9517A(config, m_dma, 16000000/4);
m_dma->in_memr_callback().set(FUNC(paso1600_state::pc_dma_read_byte));
m_dma->out_memw_callback().set(FUNC(paso1600_state::pc_dma_write_byte));
-MACHINE_CONFIG_END
+}
ROM_START( paso1600 )
ROM_REGION16_LE(0x2000,"ipl", 0)
diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp
index 48d53cb5fd3..3ce53dbc8a5 100644
--- a/src/mame/drivers/pasopia.cpp
+++ b/src/mame/drivers/pasopia.cpp
@@ -286,7 +286,8 @@ We preset all banks here, so that bankswitching will incur no speed penalty.
m_pio_timer->adjust(attotime::from_hz(50), 0, attotime::from_hz(50));
}
-MACHINE_CONFIG_START(pasopia_state::pasopia)
+void pasopia_state::pasopia(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, 4000000);
@@ -295,14 +296,14 @@ MACHINE_CONFIG_START(pasopia_state::pasopia)
m_maincpu->set_daisy_config(pasopia_daisy);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
+ screen.set_screen_update("crtc", FUNC(h46505_device::screen_update));
GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia);
- MCFG_PALETTE_ADD("palette", 8)
+ PALETTE(config, m_palette).set_entries(8);
/* Devices */
H46505(config, m_crtc, XTAL(4'000'000)/4); /* unknown clock, hand tuned to get ~60 fps */
@@ -334,7 +335,7 @@ MACHINE_CONFIG_START(pasopia_state::pasopia)
m_pio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
m_pio->out_pa_callback().set(FUNC(pasopia_state::mux_w));
m_pio->in_pb_callback().set(FUNC(pasopia_state::keyb_r));
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pasopia )
diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp
index 1cbdbc3f93d..4d39305960a 100644
--- a/src/mame/drivers/pasopia7.cpp
+++ b/src/mame/drivers/pasopia7.cpp
@@ -968,46 +968,50 @@ void pasopia7_state::p7_base(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:1", pasopia7_floppies, "525hd", floppy_image_device::default_floppy_formats);
}
-MACHINE_CONFIG_START(pasopia7_state::p7_raster)
+void pasopia7_state::p7_raster(machine_config &config)
+{
p7_base(config);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 32-1)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea(0, 640-1, 0, 32-1);
+ m_screen->set_palette(m_palette);
+ m_screen->set_screen_update(FUNC(pasopia7_state::screen_update_pasopia7));
MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7)
- MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7)
+
PALETTE(config, m_palette, palette_device::BRG_3BIT);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7);
H46505(config, m_crtc, VDP_CLOCK); /* unknown clock, hand tuned to get ~60 fps */
- m_crtc->set_screen("screen");
+ m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pasopia7_state::p7_lcd)
+void pasopia7_state::p7_lcd(machine_config &config)
+{
p7_base(config);
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
+ SCREEN(config, m_screen, SCREEN_TYPE_LCD);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea(0, 640-1, 0, 200-1);
+ m_screen->set_screen_update(FUNC(pasopia7_state::screen_update_pasopia7));
+ m_screen->set_palette(m_palette);
+
MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7)
- MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7)
- MCFG_SCREEN_PALETTE(m_palette)
PALETTE(config, m_palette, FUNC(pasopia7_state::p7_lcd_palette), 8);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7);
H46505(config, m_crtc, LCD_CLOCK); /* unknown clock, hand tuned to get ~60 fps */
- m_crtc->set_screen("screen");
+ m_crtc->set_screen(m_screen);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pasopia7 )
diff --git a/src/mame/drivers/pass.cpp b/src/mame/drivers/pass.cpp
index 4bc1a2f511f..da1d72c0a06 100644
--- a/src/mame/drivers/pass.cpp
+++ b/src/mame/drivers/pass.cpp
@@ -241,26 +241,26 @@ static GFXDECODE_START( gfx_pass )
GFXDECODE_END
/* todo : is this correct? */
-MACHINE_CONFIG_START(pass_state::pass)
-
+void pass_state::pass(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14318180/2 )
- MCFG_DEVICE_PROGRAM_MAP(pass_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pass_state, irq1_line_hold) /* all the same */
+ M68000(config, m_maincpu, 14318180/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pass_state::pass_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pass_state::irq1_line_hold)); /* all the same */
- MCFG_DEVICE_ADD("audiocpu", Z80, 14318180/4 )
- MCFG_DEVICE_PROGRAM_MAP(pass_sound_map)
- MCFG_DEVICE_IO_MAP(pass_sound_io_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(pass_state, irq0_line_hold, 60) /* probably not accurate, unknown timing and generation (ym2203 sound chip?). */
+ z80_device &audiocpu(Z80(config, "audiocpu", 14318180/4));
+ audiocpu.set_addrmap(AS_PROGRAM, &pass_state::pass_sound_map);
+ audiocpu.set_addrmap(AS_IO, &pass_state::pass_sound_io_map);
+ audiocpu.set_periodic_int(FUNC(pass_state::irq0_line_hold), attotime::from_hz(60)); /* probably not accurate, unknown timing and generation (ym2203 sound chip?). */
/* 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, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pass_state, screen_update_pass)
- MCFG_SCREEN_PALETTE("palette")
+ 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, 32*8);
+ screen.set_visarea(8*8, 48*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pass_state::screen_update_pass));
+ screen.set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x200);
GFXDECODE(config, m_gfxdecode, "palette", gfx_pass);
@@ -271,12 +271,10 @@ MACHINE_CONFIG_START(pass_state::pass)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("ymsnd", YM2203, 14318180/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
+ YM2203(config, "ymsnd", 14318180/4).add_route(ALL_OUTPUTS, "mono", 0.60);
- MCFG_DEVICE_ADD("oki", OKIM6295, 792000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 792000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60); // clock frequency & pin 7 not verified
+}
ROM_START( pass )
diff --git a/src/mame/drivers/pastelg.cpp b/src/mame/drivers/pastelg.cpp
index 3ec950a89e9..5a253adb99d 100644
--- a/src/mame/drivers/pastelg.cpp
+++ b/src/mame/drivers/pastelg.cpp
@@ -397,26 +397,26 @@ static INPUT_PORTS_START( galds )
INPUT_PORTS_END
-MACHINE_CONFIG_START(pastelg_state::pastelg)
-
+void pastelg_state::pastelg(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */
- MCFG_DEVICE_PROGRAM_MAP(pastelg_map)
- MCFG_DEVICE_IO_MAP(pastelg_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) // nmiclock not written, chip is 1411M1 instead of 1413M3
+ Z80(config, m_maincpu, 19968000/4); /* unknown divider, galds definitely relies on this for correct voice pitch */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pastelg_state::pastelg_map);
+ m_maincpu->set_addrmap(AS_IO, &pastelg_state::pastelg_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pastelg_state::irq0_line_assert)); // nmiclock not written, chip is 1411M1 instead of 1413M3
NB1413M3(config, m_nb1413m3, 0, NB1413M3_PASTELG);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 16, 240-1);
+ m_screen->set_screen_update(FUNC(pastelg_state::screen_update_pastelg));
+ m_screen->set_palette("palette");
PALETTE(config, "palette", FUNC(pastelg_state::pastelg_palette), 32);
@@ -432,7 +432,7 @@ MACHINE_CONFIG_START(pastelg_state::pastelg)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
/*
@@ -457,25 +457,25 @@ Note
*/
-MACHINE_CONFIG_START(pastelg_state::threeds)
-
+void pastelg_state::threeds(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */
- MCFG_DEVICE_PROGRAM_MAP(pastelg_map)
- MCFG_DEVICE_IO_MAP(threeds_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert)
+ Z80(config, m_maincpu, 19968000/4); /* unknown divider, galds definitely relies on this for correct voice pitch */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pastelg_state::pastelg_map);
+ m_maincpu->set_addrmap(AS_IO, &pastelg_state::threeds_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pastelg_state::irq0_line_assert));
NB1413M3(config, m_nb1413m3, 0);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 16, 240-1);
+ m_screen->set_screen_update(FUNC(pastelg_state::screen_update_pastelg));
+ m_screen->set_palette("palette");
PALETTE(config, "palette", FUNC(pastelg_state::pastelg_palette), 32);
@@ -491,7 +491,7 @@ MACHINE_CONFIG_START(pastelg_state::threeds)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
ROM_START( pastelg )
diff --git a/src/mame/drivers/patapata.cpp b/src/mame/drivers/patapata.cpp
index de68c9d5c9a..9638f33ef2b 100644
--- a/src/mame/drivers/patapata.cpp
+++ b/src/mame/drivers/patapata.cpp
@@ -285,37 +285,36 @@ TIMER_DEVICE_CALLBACK_MEMBER(patapata_state::scanline)
if (param==128) m_maincpu->set_input_line(1, HOLD_LINE);
}
-MACHINE_CONFIG_START(patapata_state::patapata)
+void patapata_state::patapata(machine_config &config)
+{
+ M68000(config, m_maincpu, 16_MHz_XTAL); // 16 MHz XTAL, 16 MHz CPU
+ m_maincpu->set_addrmap(AS_PROGRAM, &patapata_state::main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(patapata_state::irq4_line_hold)); // 1 + 4 valid? (4 main VBL)
- MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL) // 16 MHz XTAL, 16 MHz CPU
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", patapata_state, irq4_line_hold) // 1 + 4 valid? (4 main VBL)
TIMER(config, "scantimer").configure_scanline(FUNC(patapata_state::scanline), "screen", 0, 1);
GFXDECODE(config, m_gfxdecode, "palette", gfx_patapata);
- 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, 60*8-1, 0*8, 44*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(patapata_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ 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, 60*8-1, 0*8, 44*8-1);
+ screen.set_screen_update(FUNC(patapata_state::screen_update));
+ screen.set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 0x600/2);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW) // not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
+ OKIM6295(config, "oki1", 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.40); // not verified
- MCFG_DEVICE_ADD("oki2", OKIM6295, 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW) // not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
+ OKIM6295(config, "oki2", 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.40); // not verified
nmk112_device &nmk112(NMK112(config, "nmk112", 0)); // or 212? difficult to read (maybe 212 is 2* 112?)
nmk112.set_rom0_tag("oki1");
nmk112.set_rom1_tag("oki2");
-MACHINE_CONFIG_END
+}
ROM_START( patapata )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp
index 0e12ebdd703..e327f926ff3 100644
--- a/src/mame/drivers/pbaction.cpp
+++ b/src/mame/drivers/pbaction.cpp
@@ -448,8 +448,8 @@ static const z80_daisy_config daisy_chain[] =
{ nullptr }
};
-MACHINE_CONFIG_START(pbaction_state::pbaction)
-
+void pbaction_state::pbaction(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, 4_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &pbaction_state::pbaction_map);
@@ -463,14 +463,14 @@ MACHINE_CONFIG_START(pbaction_state::pbaction)
m_ctc->intr_callback().set_inputline(m_audiocpu, 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- 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(pbaction_state, screen_update_pbaction)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pbaction_state, vblank_irq))
+ 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(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pbaction_state::screen_update_pbaction));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(pbaction_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pbaction);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 256);
@@ -483,7 +483,7 @@ MACHINE_CONFIG_START(pbaction_state::pbaction)
AY8910(config, "ay1", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, "ay2", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, "ay3", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
void pbaction_state::pbactionx(machine_config &config)
{
diff --git a/src/mame/drivers/pc.cpp b/src/mame/drivers/pc.cpp
index 2d8b7476bc4..64e490b327e 100644
--- a/src/mame/drivers/pc.cpp
+++ b/src/mame/drivers/pc.cpp
@@ -208,11 +208,11 @@ MACHINE_CONFIG_START(pc_state::pccga)
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
// FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false)
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
- MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false);
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
+ ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -254,13 +254,12 @@ Expansion: 8087 FPU
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::ataripc1)
+void pc_state::ataripc1(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_DEFAULT_OPTION("ega")
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_single_360K)
-MACHINE_CONFIG_END
+ subdevice<isa8_slot_device>("isa1")->set_default_option("ega");
+ subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_single_360K);
+}
ROM_START ( ataripc1 )
ROM_REGION(0x10000,"bios", 0)
@@ -356,13 +355,14 @@ ToDo: The ROM for the CGA is available (see ROM section)
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::mpc1600)
+void pc_state::mpc1600(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa8", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa8", 0, "mb:isa", pc_isa8_cards, nullptr, false);
subdevice<ram_device>(RAM_TAG)->set_default_size("128K").set_extra_options("256K, 512K, 640K");
-MACHINE_CONFIG_END
+}
ROM_START( mpc1600 )
ROM_REGION(0x10000,"bios", 0)
@@ -408,12 +408,12 @@ CPU:
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::comport)
+void pc_state::comport(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_DEFAULT_OPTION("ega")
+ subdevice<isa8_slot_device>("isa1")->set_default_option("ega");
subdevice<ram_device>(RAM_TAG)->set_default_size("128K").set_extra_options("256K, 512K, 640K");
-MACHINE_CONFIG_END
+}
ROM_START( comport )
ROM_REGION(0x10000, "bios", 0)
@@ -446,11 +446,11 @@ Expansion: Expansion box, with 5 ISA slots and space for a 5.25" drive and a har
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::dgone)
+void pc_state::dgone(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K)
-MACHINE_CONFIG_END
+ subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_dual_720K);
+}
ROM_START( dgone )
ROM_REGION(0x10000,"bios", 0)
@@ -558,9 +558,8 @@ MACHINE_CONFIG_START(pc_state::epc)
pccga(config);
config.device_remove("maincpu");
MCFG_CPU_PC(pc8, epc, I8088, 4772720)
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_DEFAULT_OPTION("ega")
- MCFG_DEVICE_ADD("i8251", I8251, 0) // clock?
+ subdevice<isa8_slot_device>("isa1")->set_default_option("ega");
+ I8251(config, "i8251", 0); // clock?
MACHINE_CONFIG_END
ROM_START( epc )
@@ -623,10 +622,10 @@ MACHINE_CONFIG_START(pc_state::ibm5550)
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
// FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false)
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false);
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -681,20 +680,16 @@ Misc: A Kaypro 16/2 is a configuration without harddisk but with two floppy disk
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::kaypro16)
+void pc_state::kaypro16(machine_config &config)
+{
pccga(config);
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_FIXED(true)
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_FIXED(true)
- MCFG_DEVICE_MODIFY("isa3")
- MCFG_SLOT_FIXED(true)
- MCFG_DEVICE_MODIFY("isa4")
- MCFG_SLOT_FIXED(true)
- MCFG_DEVICE_MODIFY("isa5")
- MCFG_SLOT_DEFAULT_OPTION(nullptr)
+ subdevice<isa8_slot_device>("isa1")->set_fixed(true);
+ subdevice<isa8_slot_device>("isa2")->set_fixed(true);
+ subdevice<isa8_slot_device>("isa3")->set_fixed(true);
+ subdevice<isa8_slot_device>("isa4")->set_fixed(true);
+ subdevice<isa8_slot_device>("isa5")->set_default_option(nullptr);
subdevice<ram_device>(RAM_TAG)->set_default_size("256K").set_extra_options("512K, 640K");
-MACHINE_CONFIG_END
+}
ROM_START( kaypro16 )
ROM_REGION(0x10000, "bios", 0)
@@ -706,11 +701,11 @@ ROM_END
******************************************************************************/
// MK-88
-MACHINE_CONFIG_START(pc_state::mk88)
+void pc_state::mk88(machine_config &config)
+{
poisk2(config);
- MCFG_DEVICE_MODIFY("isa1")
- MCFG_SLOT_DEFAULT_OPTION("cga_ec1841")
-MACHINE_CONFIG_END
+ subdevice<isa8_slot_device>("isa1")->set_default_option("cga_ec1841");
+}
// MK-88
ROM_START( mk88 )
@@ -751,14 +746,15 @@ Options: 8087 FPU, K101 memory upgrade in 64K steps, 1.2MB floppy and controller
******************************************************************************/
-MACHINE_CONFIG_START(pc_state::ncrpc4i)
+void pc_state::ncrpc4i(machine_config & config)
+{
pccga(config);
//MCFG_DEVICE_MODIFY("mb:isa")
- MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false);
subdevice<ram_device>(RAM_TAG)->set_default_size("640K").set_extra_options("64K, 128K, 256K, 512K");
-MACHINE_CONFIG_END
+}
ROM_START( ncrpc4i )
ROM_REGION(0x10000,"bios", 0)
@@ -789,14 +785,14 @@ static DEVICE_INPUT_DEFAULTS_START( m15 )
DEVICE_INPUT_DEFAULTS("DSW0", 0x01, 0x00)
DEVICE_INPUT_DEFAULTS_END
-MACHINE_CONFIG_START(pc_state::m15)
+void pc_state::m15(machine_config &config)
+{
pccga(config);
subdevice<ibm5160_mb_device>("mb")->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(m15));
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K)
+ subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_dual_720K);
subdevice<ram_device>(RAM_TAG)->set_default_size("448K").set_extra_options("16K, 160K, 304K");
-MACHINE_CONFIG_END
+}
ROM_START( olivm15 )
ROM_REGION(0x10000,"bios", 0)
@@ -825,12 +821,9 @@ MACHINE_CONFIG_START(pc_state::olytext30)
pccga(config);
config.device_remove("maincpu");
MCFG_CPU_PC(pc8, pc8, V20, XTAL(14'318'181)/3) /* 4,77 MHz */
- MCFG_DEVICE_MODIFY("isa2")
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_single_720K)
- MCFG_DEVICE_MODIFY("isa3")
- MCFG_SLOT_DEFAULT_OPTION("")
- MCFG_DEVICE_MODIFY("isa5")
- MCFG_SLOT_DEFAULT_OPTION("hdc")
+ subdevice<isa8_slot_device>("isa2")->set_option_machine_config("fdc_xt", cfg_single_720K);
+ subdevice<isa8_slot_device>("isa3")->set_default_option("");
+ subdevice<isa8_slot_device>("isa5")->set_default_option("hdc");
subdevice<ram_device>(RAM_TAG)->set_default_size("768K");
MACHINE_CONFIG_END
@@ -852,10 +845,10 @@ MACHINE_CONFIG_START(pc_state::poisk2)
mb.set_cputag(m_maincpu);
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga_poisk2", false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga_poisk2", false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -944,12 +937,10 @@ MACHINE_CONFIG_START(pc_state::iskr3104)
mb.set_cputag(m_maincpu);
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(iskr3104));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "ega", false) // FIXME: determine ISA bus clock
- MCFG_SLOT_OPTION_DEFAULT_BIOS("ega", "iskr3104")
-
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "ega", false).set_option_default_bios("ega", "iskr3104"); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -1022,12 +1013,12 @@ MACHINE_CONFIG_START(pc_state::siemens)
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(siemens));
// FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hercules", false)
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
- MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hdc", false)
- MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "hercules", false);
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
+ ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, "hdc", false);
+ ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -1066,14 +1057,14 @@ MACHINE_CONFIG_START(pc_state::laser_turbo_xt)
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
// FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false)
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) // Multi I/O card (includes FDC)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa8", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false);
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "com", false); // Multi I/O card (includes FDC)
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa8", 0, "mb:isa", pc_isa8_cards, nullptr, false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
@@ -1145,11 +1136,10 @@ MACHINE_CONFIG_START(pc_state::zenith)
mb.set_cputag(m_maincpu);
mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
- MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false)
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false).set_option_machine_config("fdc_xt", cfg_dual_720K);
+ ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false);
+ ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false);
/* keyboard */
PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp
index 0ce792797a5..c4c446ed822 100644
--- a/src/mame/drivers/pc100.cpp
+++ b/src/mame/drivers/pc100.cpp
@@ -634,7 +634,8 @@ static void pc100_floppies(device_slot_interface &device)
#define MASTER_CLOCK 6988800
-MACHINE_CONFIG_START(pc100_state::pc100)
+void pc100_state::pc100(machine_config &config)
+{
/* basic machine hardware */
I8086(config, m_maincpu, MASTER_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &pc100_state::pc100_map);
@@ -681,11 +682,11 @@ MACHINE_CONFIG_START(pc100_state::pc100)
FLOPPY_CONNECTOR(config, "upd765:1", pc100_floppies, "525dd", floppy_image_device::default_floppy_formats);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
/* TODO: Unknown Pixel Clock and CRTC is dynamic */
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*4, 1024, 0, 768, 264*2, 0, 512)
- MCFG_SCREEN_UPDATE_DRIVER(pc100_state, screen_update_pc100)
- MCFG_SCREEN_PALETTE("palette")
+ screen.set_raw(MASTER_CLOCK*4, 1024, 0, 768, 264*2, 0, 512);
+ screen.set_screen_update(FUNC(pc100_state::screen_update_pc100));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pc100);
PALETTE(config, m_palette).set_format(palette_device::xBGR_333, 16);
@@ -693,7 +694,7 @@ MACHINE_CONFIG_START(pc100_state::pc100)
SPEAKER(config, "mono").front_center();
BEEP(config, m_beeper, 2400).add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pc100 )
diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp
index 24680ba8376..5fab9bdacf8 100644
--- a/src/mame/drivers/pc1512.cpp
+++ b/src/mame/drivers/pc1512.cpp
@@ -1152,14 +1152,15 @@ void pc1640_state::machine_start()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( pc1512 )
+// machine_config( pc1512 )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1512_state::pc1512)
- MCFG_DEVICE_ADD(I8086_TAG, I8086, 24_MHz_XTAL / 3)
- MCFG_DEVICE_PROGRAM_MAP(pc1512_mem)
- MCFG_DEVICE_IO_MAP(pc1512_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A2_TAG, pic8259_device, inta_cb)
+void pc1512_state::pc1512(machine_config &config)
+{
+ I8086(config, m_maincpu, 24_MHz_XTAL / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc1512_state::pc1512_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc1512_state::pc1512_io);
+ m_maincpu->set_irq_acknowledge_callback(I8259A2_TAG, FUNC(pic8259_device::inta_cb));
// video
pc1512_video(config);
@@ -1252,9 +1253,9 @@ MACHINE_CONFIG_START(pc1512_state::pc1512)
isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w));
isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w));
isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // FIXME: determine ISA clock
+ ISA8_SLOT(config, "isa2", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa3", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
// internal ram
RAM(config, RAM_TAG).set_default_size("512K").set_extra_options("544K,576K,608K,640K");
@@ -1262,41 +1263,42 @@ MACHINE_CONFIG_START(pc1512_state::pc1512)
// software list
SOFTWARE_LIST(config, "flop_list").set_original("pc1512_flop");
SOFTWARE_LIST(config, "hdd_list").set_original("pc1512_hdd");
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1512dd )
+// machine_config( pc1512dd )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1512_state::pc1512dd)
+void pc1512_state::pc1512dd(machine_config &config)
+{
pc1512(config);
- MCFG_DEVICE_MODIFY(PC_FDC_XT_TAG ":1")
- MCFG_SLOT_DEFAULT_OPTION("525dd")
-MACHINE_CONFIG_END
+ subdevice<floppy_connector>(PC_FDC_XT_TAG ":1")->set_default_option("525dd");
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1512hd )
+// machine_config( pc1512hd )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1512_state::pc1512hd)
+void pc1512_state::pc1512hd(machine_config &config)
+{
pc1512(config);
- MCFG_DEVICE_MODIFY("isa1")
- //MCFG_SLOT_DEFAULT_OPTION("wdxt_gen")
- MCFG_SLOT_DEFAULT_OPTION("hdc")
-MACHINE_CONFIG_END
+ //subdevice<isa8_slot_device>("isa1")->set_default_option("wdxt_gen");
+ subdevice<isa8_slot_device>("isa1")->set_default_option("hdc");
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1640 )
+// machine_config( pc1640 )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1640_state::pc1640)
- MCFG_DEVICE_ADD(I8086_TAG, I8086, 24_MHz_XTAL / 3)
- MCFG_DEVICE_PROGRAM_MAP(pc1640_mem)
- MCFG_DEVICE_IO_MAP(pc1640_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A2_TAG, pic8259_device, inta_cb)
+void pc1640_state::pc1640(machine_config &config)
+{
+ I8086(config, m_maincpu, 24_MHz_XTAL / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc1640_state::pc1640_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc1640_state::pc1640_io);
+ m_maincpu->set_irq_acknowledge_callback(I8259A2_TAG, FUNC(pic8259_device::inta_cb));
// sound
SPEAKER(config, "mono").front_center();
@@ -1386,11 +1388,11 @@ MACHINE_CONFIG_START(pc1640_state::pc1640)
isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w));
isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w));
isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, ISA_BUS_TAG, pc1640_isa8_cards, "iga", false)
+ ISA8_SLOT(config, "isa1", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa3", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa4", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa5", 0, ISA_BUS_TAG, pc1640_isa8_cards, "iga", false);
// internal ram
RAM(config, RAM_TAG).set_default_size("640K");
@@ -1398,30 +1400,30 @@ MACHINE_CONFIG_START(pc1640_state::pc1640)
// software list
SOFTWARE_LIST(config, "flop_list").set_original("pc1640_flop");
SOFTWARE_LIST(config, "hdd_list").set_original("pc1640_hdd");
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1640dd )
+// machine_config( pc1640dd )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1640_state::pc1640dd)
+void pc1640_state::pc1640dd(machine_config &config)
+{
pc1640(config);
- MCFG_DEVICE_MODIFY(PC_FDC_XT_TAG ":1")
- MCFG_SLOT_DEFAULT_OPTION("525dd")
-MACHINE_CONFIG_END
+ subdevice<floppy_connector>(PC_FDC_XT_TAG ":1")->set_default_option("525dd");
+}
//-------------------------------------------------
-// MACHINE_CONFIG( pc1640hd )
+// machine_config( pc1640hd )
//-------------------------------------------------
-MACHINE_CONFIG_START(pc1640_state::pc1640hd)
+void pc1640_state::pc1640hd(machine_config &config)
+{
pc1640(config);
- MCFG_DEVICE_MODIFY("isa1")
- //MCFG_SLOT_DEFAULT_OPTION("wdxt_gen")
- MCFG_SLOT_DEFAULT_OPTION("hdc")
-MACHINE_CONFIG_END
+ //subdevice<isa8_slot_device>("isa1")->set_default_option("wdxt_gen");
+ subdevice<isa8_slot_device>("isa1")->set_default_option("hdc");
+}
diff --git a/src/mame/drivers/pc2000.cpp b/src/mame/drivers/pc2000.cpp
index 0cf410cf845..9f111f5e8b3 100644
--- a/src/mame/drivers/pc2000.cpp
+++ b/src/mame/drivers/pc2000.cpp
@@ -957,7 +957,7 @@ void gl3000s_state::gl3000s(machine_config &config)
SOFTWARE_LIST(config, "gl2000_cart").set_compatible("gl2000");
SOFTWARE_LIST(config, "misterx_cart").set_compatible("misterx");
-MACHINE_CONFIG_END
+}
void gl4004_state::gl4000(machine_config &config)
{
diff --git a/src/mame/drivers/pc4.cpp b/src/mame/drivers/pc4.cpp
index a2661b1aa1c..ffdfd572770 100644
--- a/src/mame/drivers/pc4.cpp
+++ b/src/mame/drivers/pc4.cpp
@@ -217,19 +217,20 @@ void pc4_state::machine_start()
m_blink = 0;
}
-MACHINE_CONFIG_START(pc4_state::pc4)
+void pc4_state::pc4(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pc4_mem)
- MCFG_DEVICE_IO_MAP(pc4_io)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc4_state::pc4_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc4_state::pc4_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(72)
- MCFG_SCREEN_UPDATE_DRIVER(pc4_state, screen_update)
- MCFG_SCREEN_SIZE(240, 36)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 36-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(72);
+ screen.set_screen_update(FUNC(pc4_state::screen_update));
+ screen.set_size(240, 36);
+ screen.set_visarea(0, 240-1, 0, 36-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pc4_state::pc4_palette), 2);
GFXDECODE(config, "gfxdecode", "palette", gfx_pc4);
@@ -239,7 +240,7 @@ MACHINE_CONFIG_START(pc4_state::pc4)
BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 1.00);
RP5C01(config, "rtc", XTAL(32'768));
-MACHINE_CONFIG_END
+}
ROM_START( pc4 )
ROM_REGION( 0x20000, "maincpu", 0 )
diff --git a/src/mame/drivers/pc6001.cpp b/src/mame/drivers/pc6001.cpp
index 3219c1e5f70..38fcea1268d 100644
--- a/src/mame/drivers/pc6001.cpp
+++ b/src/mame/drivers/pc6001.cpp
@@ -1470,25 +1470,26 @@ GFXDECODE_END
#define PC6001_MAIN_CLOCK 7987200
-MACHINE_CONFIG_START(pc6001_state::pc6001)
+void pc6001_state::pc6001(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, PC6001_MAIN_CLOCK / 2) // PD 780C-1, ~4 Mhz
- MCFG_DEVICE_PROGRAM_MAP(pc6001_map)
- MCFG_DEVICE_IO_MAP(pc6001_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001_state, vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback)
+ Z80(config, m_maincpu, PC6001_MAIN_CLOCK / 2); // PD 780C-1, ~4 Mhz
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc6001_state::pc6001_map);
+ m_maincpu->set_addrmap(AS_IO, &pc6001_state::pc6001_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pc6001_state::vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback));
-// MCFG_DEVICE_ADD("subcpu", I8049, 7987200)
+// I8049(config, "subcpu", 7987200);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pc6001m2);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001)
- MCFG_SCREEN_SIZE(320, 25+192+26)
- MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_screen_update(FUNC(pc6001_state::screen_update_pc6001));
+ m_screen->set_size(320, 25+192+26);
+ m_screen->set_visarea(0, 319, 0, 239);
+ m_screen->set_palette(m_palette);
PALETTE(config, m_palette, FUNC(pc6001_state::pc6001_palette), 16+4);
@@ -1520,59 +1521,57 @@ MACHINE_CONFIG_START(pc6001_state::pc6001)
/* TODO: accurate timing on this */
TIMER(config, "keyboard_timer").configure_periodic(FUNC(pc6001_state::keyboard_callback), attotime::from_hz(250));
TIMER(config, "cassette_timer").configure_periodic(FUNC(pc6001_state::cassette_callback), attotime::from_hz(1200/12));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc6001mk2_state::pc6001mk2)
+void pc6001mk2_state::pc6001mk2(machine_config &config)
+{
pc6001(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(pc6001mk2_map)
- MCFG_DEVICE_IO_MAP(pc6001mk2_io)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc6001mk2_state::pc6001mk2_map);
+ m_maincpu->set_addrmap(AS_IO, &pc6001mk2_state::pc6001mk2_io);
// MCFG_MACHINE_RESET_OVERRIDE(pc6001mk2_state,pc6001mk2)
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(pc6001mk2_state, screen_update_pc6001mk2)
+ m_screen->set_screen_update(FUNC(pc6001mk2_state::screen_update_pc6001mk2));
m_palette->set_entries(16+16);
m_palette->set_init(FUNC(pc6001mk2_state::pc6001mk2_palette));
subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_pc6001m2);
- MCFG_DEVICE_ADD("upd7752", UPD7752, PC6001_MAIN_CLOCK/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
-
-MACHINE_CONFIG_END
+ UPD7752(config, "upd7752", PC6001_MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.00);
+}
-MACHINE_CONFIG_START(pc6601_state::pc6601)
+void pc6601_state::pc6601(machine_config &config)
+{
pc6001mk2(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", Z80, PC6001_MAIN_CLOCK / 2)
- MCFG_DEVICE_PROGRAM_MAP(pc6001mk2_map)
- MCFG_DEVICE_IO_MAP(pc6601_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001_state, vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(pc6001sr_state::pc6001sr)
+ Z80(config.replace(), m_maincpu, PC6001_MAIN_CLOCK / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc6601_state::pc6001mk2_map);
+ m_maincpu->set_addrmap(AS_IO, &pc6601_state::pc6601_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pc6001_state::vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback));
+}
+
+void pc6001sr_state::pc6001sr(machine_config &config)
+{
pc6001mk2(config);
/* basic machine hardware */
//*Yes*, PC-6001 SR Z80 CPU is actually slower than older models (better waitstates tho?)
- MCFG_DEVICE_REPLACE("maincpu", Z80, XTAL(3'579'545))
- MCFG_DEVICE_PROGRAM_MAP(pc6001sr_map)
- MCFG_DEVICE_IO_MAP(pc6001sr_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001sr_state, sr_vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback)
+ Z80(config.replace(), m_maincpu, XTAL(3'579'545));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc6001sr_state::pc6001sr_map);
+ m_maincpu->set_addrmap(AS_IO, &pc6001sr_state::pc6001sr_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pc6001sr_state::sr_vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback));
// MCFG_MACHINE_RESET_OVERRIDE(pc6001sr_state,pc6001sr)
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(pc6001sr_state, screen_update_pc6001sr)
-MACHINE_CONFIG_END
+ m_screen->set_screen_update(FUNC(pc6001sr_state::screen_update_pc6001sr));
+}
/* ROM definition */
ROM_START( pc6001 )
diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp
index a56ef6c7d7b..c13e1f13755 100644
--- a/src/mame/drivers/pc8001.cpp
+++ b/src/mame/drivers/pc8001.cpp
@@ -479,23 +479,23 @@ void pc8001_state::machine_start()
/* Machine Drivers */
-MACHINE_CONFIG_START(pc8001_state::pc8001)
+void pc8001_state::pc8001(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pc8001_mem)
- MCFG_DEVICE_IO_MAP(pc8001_io)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8001_state::pc8001_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8001_state::pc8001_io);
/* video hardware */
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update)
- MCFG_SCREEN_SIZE(640, 220)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update));
+ screen.set_size(640, 220);
+ screen.set_visarea(0, 640-1, 0, 200-1);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 2000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25);
/* devices */
I8251(config, I8251_TAG, 0);
@@ -526,25 +526,25 @@ MACHINE_CONFIG_START(pc8001_state::pc8001)
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("32K,64K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2)
+void pc8001mk2_state::pc8001mk2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pc8001mk2_mem)
- MCFG_DEVICE_IO_MAP(pc8001mk2_io)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8001mk2_state::pc8001mk2_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8001mk2_state::pc8001mk2_io);
/* video hardware */
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update)
- MCFG_SCREEN_SIZE(640, 220)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update));
+ screen.set_size(640, 220);
+ screen.set_visarea(0, 640-1, 0, 200-1);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("beeper", BEEP, 2000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25);
/* devices */
I8251(config, I8251_TAG, 0);
@@ -573,7 +573,7 @@ MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2)
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);
RAM(config, RAM_TAG).set_default_size("64K");
-MACHINE_CONFIG_END
+}
/* ROMs */
diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp
index 36a44bd7da7..7de2b1b5d45 100644
--- a/src/mame/drivers/pc8401a.cpp
+++ b/src/mame/drivers/pc8401a.cpp
@@ -570,11 +570,12 @@ WRITE8_MEMBER( pc8401a_state::ppi_pc_w )
/* Machine Drivers */
-MACHINE_CONFIG_START(pc8401a_state::pc8401a)
+void pc8401a_state::pc8401a(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C
- MCFG_DEVICE_PROGRAM_MAP(pc8401a_mem)
- MCFG_DEVICE_IO_MAP(pc8401a_io)
+ Z80(config, m_maincpu, 4000000); // NEC uPD70008C
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8401a_state::pc8401a_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8401a_state::pc8401a_io);
/* fake keyboard */
TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64));
@@ -606,13 +607,14 @@ MACHINE_CONFIG_START(pc8401a_state::pc8401a)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8500_state::pc8500)
+void pc8500_state::pc8500(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C
- MCFG_DEVICE_PROGRAM_MAP(pc8401a_mem)
- MCFG_DEVICE_IO_MAP(pc8500_io)
+ Z80(config, m_maincpu, 4000000); // NEC uPD70008C
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8500_state::pc8401a_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8500_state::pc8500_io);
/* fake keyboard */
TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64));
@@ -644,7 +646,7 @@ MACHINE_CONFIG_START(pc8500_state::pc8500)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K");
-MACHINE_CONFIG_END
+}
/* ROMs */
diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp
index fb7291e44fc..327f2044fe4 100644
--- a/src/mame/drivers/pc8801.cpp
+++ b/src/mame/drivers/pc8801.cpp
@@ -2340,18 +2340,19 @@ WRITE_LINE_MEMBER( pc8801_state::rxrdy_w )
// ...
}
-MACHINE_CONFIG_START(pc8801_state::pc8801)
+void pc8801_state::pc8801(machine_config &config)
+{
/* main CPU */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz */
- MCFG_DEVICE_PROGRAM_MAP(pc8801_mem)
- MCFG_DEVICE_IO_MAP(pc8801_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc8801_state, pc8801_vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc8801_state,pc8801_irq_callback)
+ Z80(config, m_maincpu, MASTER_CLOCK); /* 4 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801_mem);
+ m_maincpu->set_addrmap(AS_IO, &pc8801_state::pc8801_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pc8801_state::pc8801_vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pc8801_state::pc8801_irq_callback));
/* sub CPU(5 inch floppy drive) */
- MCFG_DEVICE_ADD(m_fdccpu, Z80, MASTER_CLOCK) /* 4 MHz */
- MCFG_DEVICE_PROGRAM_MAP(pc8801fdc_mem)
- MCFG_DEVICE_IO_MAP(pc8801fdc_io)
+ Z80(config, m_fdccpu, MASTER_CLOCK); /* 4 MHz */
+ m_fdccpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801fdc_mem);
+ m_fdccpu->set_addrmap(AS_IO, &pc8801_state::pc8801fdc_io);
//config.m_minimum_quantum = attotime::from_hz(300000);
config.m_perfect_cpu_quantum = subtag("maincpu");
@@ -2390,10 +2391,10 @@ MACHINE_CONFIG_START(pc8801_state::pc8801)
SOFTWARE_LIST(config, "disk_list").set_original("pc8801_flop");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK_24KHz,848,0,640,448,0,400)
- MCFG_SCREEN_UPDATE_DRIVER(pc8801_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(PIXEL_CLOCK_24KHz,848,0,640,448,0,400);
+ m_screen->set_screen_update(FUNC(pc8801_state::screen_update));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pc8801);
PALETTE(config, m_palette, FUNC(pc8801_state::pc8801_palette), 0x10);
@@ -2414,26 +2415,28 @@ MACHINE_CONFIG_START(pc8801_state::pc8801)
m_opna->port_b_read_callback().set(FUNC(pc8801_state::opn_portb_r));
m_opna->add_route(ALL_OUTPUTS, "mono", 1.00);
- MCFG_DEVICE_ADD("beeper", BEEP, 2400)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
+ BEEP(config, m_beeper, 2400).add_route(ALL_OUTPUTS, "mono", 0.10);
TIMER(config, "rtc_timer").configure_periodic(FUNC(pc8801_state::pc8801_rtc_irq), attotime::from_hz(600));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8801_state::pc8801fh)
+void pc8801_state::pc8801fh(machine_config &config)
+{
pc8801(config);
MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_clock_speed )
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8801_state::pc8801ma)
+void pc8801_state::pc8801ma(machine_config &config)
+{
pc8801(config);
MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_dic )
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pc8801_state::pc8801mc)
+void pc8801_state::pc8801mc(machine_config &config)
+{
pc8801(config);
MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_cdrom )
-MACHINE_CONFIG_END
+}
/* TODO: clean this up */
diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp
index 043dcc2d33a..508edd48ccd 100644
--- a/src/mame/drivers/pc88va.cpp
+++ b/src/mame/drivers/pc88va.cpp
@@ -1585,30 +1585,30 @@ WRITE8_MEMBER(pc88va_state::dma_memw_cb)
}
-MACHINE_CONFIG_START(pc88va_state::pc88va)
-
- MCFG_DEVICE_ADD("maincpu", V30, 8000000) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(pc88va_map)
- MCFG_DEVICE_IO_MAP(pc88va_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc88va_state, pc88va_vrtc_irq)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
+void pc88va_state::pc88va(machine_config &config)
+{
+ V30(config, m_maincpu, 8000000); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc88va_state::pc88va_map);
+ m_maincpu->set_addrmap(AS_IO, &pc88va_state::pc88va_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pc88va_state::pc88va_vrtc_irq));
+ m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
#if TEST_SUBFDC
- MCFG_DEVICE_ADD("fdccpu", Z80, 8000000) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(pc88va_z80_map)
- MCFG_DEVICE_IO_MAP(pc88va_z80_io_map)
+ z80_device &fdccpu(Z80(config, "fdccpu", 8000000)); /* 8 MHz */
+ fdccpu.set_addrmap(AS_PROGRAM, &pc88va_state::pc88va_z80_map);
+ fdccpu.set_addrmap(AS_IO, &pc88va_state::pc88va_z80_io_map);
config.m_perfect_cpu_quantum = subtag("maincpu");
#endif
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_DRIVER(pc88va_state, screen_update_pc88va)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea(0, 640-1, 0, 200-1);
+ m_screen->set_screen_update(FUNC(pc88va_state::screen_update_pc88va));
- MCFG_PALETTE_ADD("palette", 32)
-// MCFG_PALETTE_INIT_OWNER(pc88va_state, pc8801 )
+ PALETTE(config, m_palette).set_entries(32);
+// m_palette->set_init(FUNC(pc88va_state::pc8801));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pc88va);
i8255_device &d8255_2(I8255(config, "d8255_2"));
@@ -1664,12 +1664,12 @@ MACHINE_CONFIG_START(pc88va_state::pc88va)
ADDRESS_MAP_BANK(config, "sysbank").set_map(&pc88va_state::sysbank_map).set_options(ENDIANNESS_LITTLE, 16, 18+4, 0x40000);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ym", YM2203, 3993600) //unknown clock / divider
- MCFG_SOUND_ROUTE(0, "mono", 0.25)
- MCFG_SOUND_ROUTE(1, "mono", 0.25)
- MCFG_SOUND_ROUTE(2, "mono", 0.50)
- MCFG_SOUND_ROUTE(3, "mono", 0.50)
-MACHINE_CONFIG_END
+ ym2203_device &ym(YM2203(config, "ym", 3993600)); //unknown clock / divider
+ ym.add_route(0, "mono", 0.25);
+ ym.add_route(1, "mono", 0.25);
+ ym.add_route(2, "mono", 0.50);
+ ym.add_route(3, "mono", 0.50);
+}
ROM_START( pc88va2 )
diff --git a/src/mame/drivers/pcat_nit.cpp b/src/mame/drivers/pcat_nit.cpp
index e7a48dc12b6..16e3f1a1a0e 100644
--- a/src/mame/drivers/pcat_nit.cpp
+++ b/src/mame/drivers/pcat_nit.cpp
@@ -231,12 +231,13 @@ void pcat_nit_state::machine_start()
membank("rombank")->set_entry(0);
}
-MACHINE_CONFIG_START(pcat_nit_state::pcat_nit)
+void pcat_nit_state::pcat_nit(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */
- MCFG_DEVICE_PROGRAM_MAP(pcat_map)
- MCFG_DEVICE_IO_MAP(pcat_nit_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ I386(config, m_maincpu, 14318180*2); /* I386 ?? Mhz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcat_nit_state::pcat_map);
+ m_maincpu->set_addrmap(AS_IO, &pcat_nit_state::pcat_nit_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
/* video hardware */
pcvideo_vga(config);
@@ -250,14 +251,15 @@ MACHINE_CONFIG_START(pcat_nit_state::pcat_nit)
MICROTOUCH(config, m_microtouch, 9600).stx().set(uart, FUNC(ins8250_uart_device::rx_w)); // rate?
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pcat_nit_state::bonanza)
+void pcat_nit_state::bonanza(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */
- MCFG_DEVICE_PROGRAM_MAP(bonanza_map)
- MCFG_DEVICE_IO_MAP(bonanza_io_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ I386(config, m_maincpu, 14318180*2); /* I386 ?? Mhz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcat_nit_state::bonanza_map);
+ m_maincpu->set_addrmap(AS_IO, &pcat_nit_state::bonanza_io_map);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
/* video hardware */
pcvideo_cirrus_gd5428(config);
@@ -270,7 +272,7 @@ MACHINE_CONFIG_START(pcat_nit_state::bonanza)
MICROTOUCH(config, m_microtouch, 9600).stx().set(uart, FUNC(ins8250_uart_device::rx_w)); // rate?
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
/***************************************
*
diff --git a/src/mame/drivers/pce220.cpp b/src/mame/drivers/pce220.cpp
index 7e4bba2462a..80d62bea1c0 100644
--- a/src/mame/drivers/pce220.cpp
+++ b/src/mame/drivers/pce220.cpp
@@ -944,21 +944,22 @@ void pce220_state::pce220_palette(palette_device &palette) const
}
-MACHINE_CONFIG_START(pce220_state::pce220)
+void pce220_state::pce220(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, 3072000 ) // CMOS-SC7852
- MCFG_DEVICE_PROGRAM_MAP(pce220_mem)
- MCFG_DEVICE_IO_MAP(pce220_io)
+ Z80(config, m_maincpu, 3072000); // CMOS-SC7852
+ m_maincpu->set_addrmap(AS_PROGRAM, &pce220_state::pce220_mem);
+ m_maincpu->set_addrmap(AS_IO, &pce220_state::pce220_io);
/* video hardware */
// 4 lines x 24 characters, resp. 144 x 32 pixel
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pce220_state, screen_update)
- MCFG_SCREEN_SIZE(24*6, 4*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 24*6-1, 0, 4*8-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pce220_state::screen_update));
+ screen.set_size(24*6, 4*8);
+ screen.set_visarea(0, 24*6-1, 0, 4*8-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pce220_state::pce220_palette), 2);
@@ -974,23 +975,24 @@ MACHINE_CONFIG_START(pce220_state::pce220)
RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card
PCE220SERIAL(config, m_serial, 0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pcg850v_state::pcg815)
+void pcg850v_state::pcg815(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000) ) // 3.54MHz
- MCFG_DEVICE_PROGRAM_MAP(pce220_mem)
- MCFG_DEVICE_IO_MAP(pcg850v_io)
+ Z80(config, m_maincpu, XTAL(4'000'000)); // 3.54MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcg850v_state::pce220_mem);
+ m_maincpu->set_addrmap(AS_IO, &pcg850v_state::pcg850v_io);
/* video hardware */
// 4 lines x 24 characters, resp. 144 x 32 pixel
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pcg850v_state, screen_update)
- MCFG_SCREEN_SIZE(144, 32)
- MCFG_SCREEN_VISIBLE_AREA(0, 144-1, 0, 32-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pcg850v_state::screen_update));
+ screen.set_size(144, 32);
+ screen.set_visarea(0, 144-1, 0, 32-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pcg850v_state::pce220_palette), 2);
@@ -1006,23 +1008,24 @@ MACHINE_CONFIG_START(pcg850v_state::pcg815)
RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card
PCE220SERIAL(config, m_serial, 0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pcg850v_state::pcg850v)
+void pcg850v_state::pcg850v(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000) ) // CMOS-SC7852
- MCFG_DEVICE_PROGRAM_MAP(pce220_mem)
- MCFG_DEVICE_IO_MAP(pcg850v_io)
+ Z80(config, m_maincpu, XTAL(8'000'000)); // CMOS-SC7852
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcg850v_state::pce220_mem);
+ m_maincpu->set_addrmap(AS_IO, &pcg850v_state::pcg850v_io);
/* video hardware */
// 6 lines x 24 characters, resp. 144 x 48 pixel
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pcg850v_state, screen_update)
- MCFG_SCREEN_SIZE(144, 48)
- MCFG_SCREEN_VISIBLE_AREA(0, 144-1, 0, 48-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pcg850v_state::screen_update));
+ screen.set_size(144, 48);
+ screen.set_visarea(0, 144-1, 0, 48-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pcg850v_state::pce220_palette), 2);
@@ -1038,7 +1041,7 @@ MACHINE_CONFIG_START(pcg850v_state::pcg850v)
RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card
PCE220SERIAL(config, m_serial, 0);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pce220 )
diff --git a/src/mame/drivers/pcfx.cpp b/src/mame/drivers/pcfx.cpp
index 4a4aea782b9..b478d2c5ebd 100644
--- a/src/mame/drivers/pcfx.cpp
+++ b/src/mame/drivers/pcfx.cpp
@@ -417,14 +417,15 @@ uint32_t pcfx_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap,
}
-MACHINE_CONFIG_START(pcfx_state::pcfx)
- MCFG_DEVICE_ADD( "maincpu", V810, XTAL(21'477'272) )
- MCFG_DEVICE_PROGRAM_MAP( pcfx_mem)
- MCFG_DEVICE_IO_MAP( pcfx_io)
+void pcfx_state::pcfx(machine_config &config)
+{
+ V810(config, m_maincpu, XTAL(21'477'272));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcfx_state::pcfx_mem);
+ m_maincpu->set_addrmap(AS_IO, &pcfx_state::pcfx_io);
- MCFG_SCREEN_ADD( "screen", RASTER )
- MCFG_SCREEN_UPDATE_DRIVER(pcfx_state, screen_update)
- MCFG_SCREEN_RAW_PARAMS(XTAL(21'477'272), huc6261_device::WPF, 64, 64 + 1024 + 64, huc6261_device::LPF, 18, 18 + 242)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_screen_update(FUNC(pcfx_state::screen_update));
+ screen.set_raw(XTAL(21'477'272), huc6261_device::WPF, 64, 64 + 1024 + 64, huc6261_device::LPF, 18, 18 + 242);
huc6270_device &huc6270_a(HUC6270(config, "huc6270_a", 0));
huc6270_a.set_vram_size(0x20000);
@@ -457,7 +458,7 @@ MACHINE_CONFIG_START(pcfx_state::pcfx)
huc6230.cdda_cb().set("huc6272", FUNC(huc6272_device::cdda_update));
huc6230.add_route(0, "lspeaker", 1.0);
huc6230.add_route(1, "rspeaker", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( pcfx )
diff --git a/src/mame/drivers/pcktgal.cpp b/src/mame/drivers/pcktgal.cpp
index 6398fe6d179..5a2c05a40d0 100644
--- a/src/mame/drivers/pcktgal.cpp
+++ b/src/mame/drivers/pcktgal.cpp
@@ -270,7 +270,7 @@ void pcktgal_state::bootleg(machine_config &config)
pcktgal(config);
m_gfxdecode->set_info(gfx_bootleg);
subdevice<screen_device>("screen")->set_screen_update(FUNC(pcktgal_state::screen_update_pcktgalb));
-MACHINE_CONFIG_END
+}
void pcktgal_state::pcktgal2(machine_config &config)
{
diff --git a/src/mame/drivers/pcm.cpp b/src/mame/drivers/pcm.cpp
index 460e32d8589..02d5f704f9e 100644
--- a/src/mame/drivers/pcm.cpp
+++ b/src/mame/drivers/pcm.cpp
@@ -256,7 +256,8 @@ static GFXDECODE_START( gfx_pcm )
GFXDECODE_ENTRY( "chargen", 0x0000, pcm_charlayout, 0, 1 )
GFXDECODE_END
-MACHINE_CONFIG_START(pcm_state::pcm)
+void pcm_state::pcm(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, XTAL(10'000'000) /4);
m_maincpu->set_addrmap(AS_PROGRAM, &pcm_state::pcm_mem);
@@ -264,13 +265,13 @@ MACHINE_CONFIG_START(pcm_state::pcm)
m_maincpu->set_daisy_config(pcm_daisy_chain);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pcm_state, screen_update)
- MCFG_SCREEN_SIZE(64*8, 16*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pcm_state::screen_update));
+ screen.set_size(64*8, 16*8);
+ screen.set_visarea(0, 64*8-1, 0, 16*8-1);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_pcm);
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -304,7 +305,7 @@ MACHINE_CONFIG_START(pcm_state::pcm)
m_ctc_s->zc_callback<0>().append("sio", FUNC(z80sio_device::txca_w));
m_ctc_s->zc_callback<1>().set("sio", FUNC(z80sio_device::rxtxcb_w));
m_ctc_s->zc_callback<2>().set(FUNC(pcm_state::pcm_82_w)); // speaker
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pcm )
diff --git a/src/mame/drivers/pcw16.cpp b/src/mame/drivers/pcw16.cpp
index 877d65105a7..58d7340d28e 100644
--- a/src/mame/drivers/pcw16.cpp
+++ b/src/mame/drivers/pcw16.cpp
@@ -1010,11 +1010,12 @@ static void pcw16_com(device_slot_interface &device)
device.option_add("msystems_mouse", MSYSTEMS_HLE_SERIAL_MOUSE);
}
-MACHINE_CONFIG_START(pcw16_state::pcw16)
+void pcw16_state::pcw16(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(pcw16_map)
- MCFG_DEVICE_IO_MAP(pcw16_io)
+ Z80(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcw16_state::pcw16_map);
+ m_maincpu->set_addrmap(AS_IO, &pcw16_state::pcw16_io);
config.m_minimum_quantum = attotime::from_hz(60);
ns16550_device &uart1(NS16550(config, "ns16550_1", XTAL(1'843'200))); /* TODO: Verify uart model */
@@ -1043,13 +1044,13 @@ MACHINE_CONFIG_START(pcw16_state::pcw16)
serport2.cts_handler().set(m_uart2, FUNC(ins8250_uart_device::cts_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT)
- MCFG_SCREEN_VISIBLE_AREA(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_DRIVER(pcw16_state, screen_update_pcw16)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT);
+ screen.set_visarea(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1);
+ screen.set_screen_update(FUNC(pcw16_state::screen_update_pcw16));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pcw16_state::pcw16_colours), PCW16_NUM_COLOURS);
@@ -1081,7 +1082,7 @@ MACHINE_CONFIG_START(pcw16_state::pcw16)
TIMER(config, "video_timer").configure_periodic(FUNC(pcw16_state::pcw16_timer_callback), attotime::from_usec(5830));
/* rtc timer */
TIMER(config, "rtc_timer").configure_periodic(FUNC(pcw16_state::rtc_timer_callback), attotime::from_hz(256));
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/pcxt.cpp b/src/mame/drivers/pcxt.cpp
index c21f81a272d..db4b48940a3 100644
--- a/src/mame/drivers/pcxt.cpp
+++ b/src/mame/drivers/pcxt.cpp
@@ -494,33 +494,34 @@ static void filetto_isa8_cards(device_slot_interface &device)
}
-MACHINE_CONFIG_START(pcxt_state::filetto)
- MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3)
- MCFG_DEVICE_PROGRAM_MAP(filetto_map)
- MCFG_DEVICE_IO_MAP(filetto_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
+void pcxt_state::filetto(machine_config &config)
+{
+ I8088(config, m_maincpu, XTAL(14'318'181)/3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcxt_state::filetto_map);
+ m_maincpu->set_addrmap(AS_IO, &pcxt_state::filetto_io);
+ m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
PCNOPPI_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu);
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", filetto_isa8_cards, "filetto", true) // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", filetto_isa8_cards, "filetto", true); // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("voice", HC55516, 8000000/4)//8923S-UM5100 is a HC55536 with ROM hook-up
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mb:mono", 0.60)
+ HC55516(config, "voice", 8000000/4).add_route(ALL_OUTPUTS, "mb:mono", 0.60); //8923S-UM5100 is a HC55536 with ROM hook-up
RAM(config, RAM_TAG).set_default_size("640K");
ADDRESS_MAP_BANK(config, "bank").set_map(&pcxt_state::bank_map).set_options(ENDIANNESS_LITTLE, 8, 18, 0x10000);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pcxt_state::tetriskr)
- MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3)
- MCFG_DEVICE_PROGRAM_MAP(tetriskr_map)
- MCFG_DEVICE_IO_MAP(tetriskr_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
+void pcxt_state::tetriskr(machine_config &config)
+{
+ I8088(config, m_maincpu, XTAL(14'318'181)/3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcxt_state::tetriskr_map);
+ m_maincpu->set_addrmap(AS_IO, &pcxt_state::tetriskr_io);
+ m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
PCNOPPI_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu);
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", filetto_isa8_cards, "tetriskr", true) // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa1", 0, "mb:isa", filetto_isa8_cards, "tetriskr", true); // FIXME: determine ISA bus clock
RAM(config, RAM_TAG).set_default_size("640K");
-MACHINE_CONFIG_END
+}
ROM_START( filetto )
ROM_REGION( 0x10000, "bios", 0 )
diff --git a/src/mame/drivers/pdp11.cpp b/src/mame/drivers/pdp11.cpp
index aa8dcbc9811..bd8634767f3 100644
--- a/src/mame/drivers/pdp11.cpp
+++ b/src/mame/drivers/pdp11.cpp
@@ -367,18 +367,20 @@ void pdp11_state::pdp11(machine_config &config)
RX01(config, "rx01", 0);
}
-MACHINE_CONFIG_START(pdp11_state::pdp11ub2)
+void pdp11_state::pdp11ub2(machine_config &config)
+{
pdp11(config);
MCFG_MACHINE_RESET_OVERRIDE(pdp11_state,pdp11ub2)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pdp11_state::pdp11qb)
+void pdp11_state::pdp11qb(machine_config &config)
+{
pdp11(config);
MCFG_MACHINE_RESET_OVERRIDE(pdp11_state,pdp11qb)
m_maincpu->set_initial_mode(0 << 13);
m_maincpu->set_addrmap(AS_PROGRAM, &pdp11_state::pdp11qb_mem);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pdp11ub )
diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp
index 7d8055715ff..77ddc422697 100644
--- a/src/mame/drivers/pegasus.cpp
+++ b/src/mame/drivers/pegasus.cpp
@@ -490,19 +490,19 @@ void pegasus_state::init_pegasus()
MACHINE_CONFIG_START(pegasus_state::pegasus)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809, XTAL(4'000'000)) // actually a 6809C - 4MHZ clock coming in, 1MHZ internally
- MCFG_DEVICE_PROGRAM_MAP(pegasus_mem)
+ MC6809(config, m_maincpu, XTAL(4'000'000)); // actually a 6809C - 4MHZ clock coming in, 1MHZ internally
+ m_maincpu->set_addrmap(AS_PROGRAM, &pegasus_state::pegasus_mem);
TIMER(config, "pegasus_firq").configure_periodic(FUNC(pegasus_state::pegasus_firq), attotime::from_hz(400));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pegasus_state, screen_update)
- MCFG_SCREEN_SIZE(32*8, 16*16)
- MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 16*16-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pegasus_state::screen_update));
+ screen.set_size(32*8, 16*16);
+ screen.set_visarea(0, 32*8-1, 0, 16*16-1);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_pegasus);
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -548,11 +548,11 @@ MACHINE_CONFIG_START(pegasus_state::pegasus)
SOFTWARE_LIST(config, "cart_list").set_original("pegasus_cart");
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(pegasus_state::pegasusm)
+void pegasus_state::pegasusm(machine_config &config)
+{
pegasus(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_PROGRAM_MAP(pegasusm_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &pegasus_state::pegasusm_mem);
+}
/* ROM definition */
diff --git a/src/mame/drivers/pentagon.cpp b/src/mame/drivers/pentagon.cpp
index 8bd464034e9..54ee980e21a 100644
--- a/src/mame/drivers/pentagon.cpp
+++ b/src/mame/drivers/pentagon.cpp
@@ -276,19 +276,18 @@ GFXDECODE_END
-MACHINE_CONFIG_START(pentagon_state::pentagon)
+void pentagon_state::pentagon(machine_config &config)
+{
spectrum_128(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(XTAL(14'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(pentagon_mem)
- MCFG_DEVICE_IO_MAP(pentagon_io)
- MCFG_DEVICE_OPCODES_MAP(pentagon_switch)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pentagon_state, pentagon_interrupt)
+ m_maincpu->set_clock(XTAL(14'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pentagon_state::pentagon_mem);
+ m_maincpu->set_addrmap(AS_IO, &pentagon_state::pentagon_io);
+ m_maincpu->set_addrmap(AS_OPCODES, &pentagon_state::pentagon_switch);
+ m_maincpu->set_vblank_int("screen", FUNC(pentagon_state::pentagon_interrupt));
MCFG_MACHINE_RESET_OVERRIDE(pentagon_state, pentagon )
- MCFG_SCREEN_MODIFY("screen")
- //MCFG_SCREEN_RAW_PARAMS(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 304)
- MCFG_SCREEN_RAW_PARAMS(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 287)
+ //m_screen->set_raw(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 304);
+ m_screen->set_raw(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 287);
MCFG_VIDEO_START_OVERRIDE(pentagon_state, pentagon )
BETA_DISK(config, m_beta, 0);
@@ -306,7 +305,7 @@ MACHINE_CONFIG_START(pentagon_state::pentagon)
config.device_remove("exp");
SOFTWARE_LIST(config, "cass_list_pen").set_original("pentagon_cass");
-MACHINE_CONFIG_END
+}
void pentagon_state::pent1024(machine_config &config)
{
diff --git a/src/mame/drivers/perq.cpp b/src/mame/drivers/perq.cpp
index c067da028b7..9e92fad8353 100644
--- a/src/mame/drivers/perq.cpp
+++ b/src/mame/drivers/perq.cpp
@@ -29,8 +29,9 @@ private:
static INPUT_PORTS_START( perq )
INPUT_PORTS_END
-MACHINE_CONFIG_START(perq_state::perq)
-MACHINE_CONFIG_END
+void perq_state::perq(machine_config &config)
+{
+}
ROM_START( perq )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/peyper.cpp b/src/mame/drivers/peyper.cpp
index c81928a9184..f3dc37a2f57 100644
--- a/src/mame/drivers/peyper.cpp
+++ b/src/mame/drivers/peyper.cpp
@@ -601,12 +601,13 @@ void peyper_state::machine_reset()
}
-MACHINE_CONFIG_START(peyper_state::peyper)
+void peyper_state::peyper(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2'500'000)
- MCFG_DEVICE_PROGRAM_MAP(peyper_map)
- MCFG_DEVICE_IO_MAP(peyper_io)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(peyper_state, irq0_line_hold, 1250)
+ Z80(config, m_maincpu, 2'500'000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &peyper_state::peyper_map);
+ m_maincpu->set_addrmap(AS_IO, &peyper_state::peyper_io);
+ m_maincpu->set_periodic_int(FUNC(peyper_state::irq0_line_hold), attotime::from_hz(1250));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
@@ -631,7 +632,7 @@ MACHINE_CONFIG_START(peyper_state::peyper)
kbdc.in_rl_callback().set(FUNC(peyper_state::sw_r)); // kbd RL lines
kbdc.in_shift_callback().set_constant(1); // Shift key
kbdc.in_ctrl_callback().set_constant(1);
-MACHINE_CONFIG_END
+}
// Not allowed to set up an array all at once, so we have this mess
void peyper_state::init_peyper()
diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp
index 850113517ad..fc4beba17ad 100644
--- a/src/mame/drivers/pg685.cpp
+++ b/src/mame/drivers/pg685.cpp
@@ -422,11 +422,12 @@ void pg685_state::pg685_module(machine_config &config)
MM58167(config, "rtc", XTAL(32'768));
}
-MACHINE_CONFIG_START(pg685_state::pg675)
+void pg685_state::pg675(machine_config &config)
+{
// main cpu
- MCFG_DEVICE_ADD("maincpu", I8088, XTAL(15'000'000) / 3)
- MCFG_DEVICE_PROGRAM_MAP(pg675_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb)
+ I8088(config, m_maincpu, XTAL(15'000'000) / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg675_mem);
+ m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb));
pic8259_device &mainpic(PIC8259(config, "mainpic", 0));
mainpic.out_int_callback().set_inputline(m_maincpu, 0);
@@ -437,9 +438,9 @@ MACHINE_CONFIG_START(pg685_state::pg675)
// ram
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values
- MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update )
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
mc6845_device &crtc(MC6845(config, "crtc", 12288000));
crtc.set_screen("screen");
@@ -452,7 +453,7 @@ MACHINE_CONFIG_START(pg685_state::pg675)
// devices
pg685_module(config);
- MCFG_DEVICE_ADD("mainuart", I8251, XTAL(12'288'000) / 6) // divider guessed
+ I8251(config, "mainuart", XTAL(12'288'000) / 6); // divider guessed
// rs232 port
@@ -467,14 +468,14 @@ MACHINE_CONFIG_START(pg685_state::pg675)
// m_fdc->drq_wr_callback(FUNC(zorba_state::fdc_drq_w));
FLOPPY_CONNECTOR(config, "fdc:0", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "fdc:1", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true);
+}
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(pg685_state::pg685)
+void pg685_state::pg685(machine_config &config)
+{
// main cpu
- MCFG_DEVICE_ADD("maincpu", V20, XTAL(15'000'000) / 3)
- MCFG_DEVICE_PROGRAM_MAP(pg685_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb)
+ V20(config, m_maincpu, XTAL(15'000'000) / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg685_mem);
+ m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb));
pic8259_device &mainpic(PIC8259(config, "mainpic", 0));
mainpic.out_int_callback().set_inputline(m_maincpu, 0);
@@ -485,9 +486,9 @@ MACHINE_CONFIG_START(pg685_state::pg685)
// ram
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values
- MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update )
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
mc6845_device &crtc(MC6845(config, "crtc", 12288000));
crtc.set_screen("screen");
@@ -501,7 +502,7 @@ MACHINE_CONFIG_START(pg685_state::pg685)
pg685_backplane(config);
pg685_module(config);
- MCFG_DEVICE_ADD("mainuart", I8251, XTAL(12'288'000) / 6) // divider guessed
+ I8251(config, "mainuart", XTAL(12'288'000) / 6); // divider guessed
// rs232 port
@@ -519,13 +520,14 @@ MACHINE_CONFIG_START(pg685_state::pg685)
// harddisk
wd2010_device& hdc(WD2010(config, "hdc", XTAL(10'000'000) / 2)); // divider guessed
hdc.out_intrq_callback().set("mainpic", FUNC(pic8259_device::ir3_w));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(pg685_state::pg685oua12)
+void pg685_state::pg685oua12(machine_config &config)
+{
// main cpu
- MCFG_DEVICE_ADD("maincpu", I80286, XTAL(20'000'000) / 2)
- MCFG_DEVICE_PROGRAM_MAP(pg685oua12_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb)
+ I80286(config, m_maincpu, XTAL(20'000'000) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg685oua12_mem);
+ m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb));
pic8259_device &mainpic(PIC8259(config, "mainpic", 0));
mainpic.out_int_callback().set_inputline(m_maincpu, 0);
@@ -536,9 +538,9 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
// ram
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values
- MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update )
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
mc6845_device &crtc(MC6845(config, "crtc", 12288000));
crtc.set_screen("screen");
@@ -552,7 +554,7 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
pg685_backplane(config);
pg685_module(config);
- MCFG_DEVICE_ADD("mainuart", I8251, 12288000 / 6) // wrong
+ I8251(config, "mainuart", 12288000 / 6); // wrong
// rs232 port
@@ -569,8 +571,7 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
// harddisk
wd2010_device& hdc(WD2010(config, "hdc", XTAL(10'000'000) / 2)); // divider guessed
hdc.out_intrq_callback().set("mainpic", FUNC(pic8259_device::ir3_w));
-
-MACHINE_CONFIG_END
+}
//**************************************************************************
diff --git a/src/mame/drivers/pgm.cpp b/src/mame/drivers/pgm.cpp
index 188c1103104..2f3ac8a9cf8 100644
--- a/src/mame/drivers/pgm.cpp
+++ b/src/mame/drivers/pgm.cpp
@@ -490,7 +490,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(pgm_state::pgm_interrupt)
{
int scanline = param;
-// already being generated by MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pgm_state, irq6_line_hold)
+// already being generated by m_maincpu->set_vblank_int("screen", FUNC(pgm_state::irq6_line_hold));
// if(scanline == 224)
// m_maincpu->set_input_line(6, HOLD_LINE);
diff --git a/src/mame/drivers/pgm3.cpp b/src/mame/drivers/pgm3.cpp
index 4d3fa198943..ba95a80a902 100644
--- a/src/mame/drivers/pgm3.cpp
+++ b/src/mame/drivers/pgm3.cpp
@@ -104,25 +104,25 @@ void pgm3_state::machine_reset()
{
}
-MACHINE_CONFIG_START(pgm3_state::pgm3)
-
+void pgm3_state::pgm3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM9, 800000000) // wrong, see notes at top of driver
- MCFG_DEVICE_PROGRAM_MAP(pgm3_map)
- MCFG_DEVICE_DISABLE()
+ ARM9(config, m_maincpu, 800000000); // wrong, see notes at top of driver
+ m_maincpu->set_addrmap(AS_PROGRAM, &pgm3_state::pgm3_map);
+ m_maincpu->set_disable();
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(1280, 720)
- MCFG_SCREEN_VISIBLE_AREA(0, 1280-1, 0, 720-1)
- MCFG_SCREEN_UPDATE_DRIVER(pgm3_state, screen_update_pgm3)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pgm3_state, screen_vblank_pgm3))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 0x1000)
-MACHINE_CONFIG_END
+ 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(1280, 720);
+ screen.set_visarea(0, 1280-1, 0, 720-1);
+ screen.set_screen_update(FUNC(pgm3_state::screen_update_pgm3));
+ screen.screen_vblank().set(FUNC(pgm3_state::screen_vblank_pgm3));
+ screen.set_palette("palette");
+
+ PALETTE(config, "palette").set_entries(0x1000);
+}
ROM_START( kov3hd )
ROM_REGION( 0x04000, "maincpu", ROMREGION_ERASE00 )
diff --git a/src/mame/drivers/photon.cpp b/src/mame/drivers/photon.cpp
index a895d38de4c..8dcb71f8453 100644
--- a/src/mame/drivers/photon.cpp
+++ b/src/mame/drivers/photon.cpp
@@ -214,23 +214,23 @@ uint32_t photon_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
return video_update(screen, bitmap, cliprect, memregion("maincpu")->base());
}
-MACHINE_CONFIG_START(photon_state::photon)
-
+void photon_state::photon(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",I8080, 1780000)
- MCFG_DEVICE_PROGRAM_MAP(pk8000_mem)
- MCFG_DEVICE_IO_MAP(pk8000_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", photon_state, interrupt)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(photon_state, irq_callback)
+ I8080(config, m_maincpu, 1780000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &photon_state::pk8000_mem);
+ m_maincpu->set_addrmap(AS_IO, &photon_state::pk8000_io);
+ m_maincpu->set_vblank_int("screen", FUNC(photon_state::interrupt));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(photon_state::irq_callback));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(256+32, 192+32)
- MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1)
- MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(256+32, 192+32);
+ screen.set_visarea(0, 256+32-1, 0, 192+32-1);
+ screen.set_screen_update(FUNC(photon_state::screen_update));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(photon_state::pk8000_palette), 16);
@@ -247,7 +247,7 @@ MACHINE_CONFIG_START(photon_state::photon)
/* audio hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
/*
Dump was made using custom adaptor, hence it is marked as bad dump.
diff --git a/src/mame/drivers/photon2.cpp b/src/mame/drivers/photon2.cpp
index 8ee9d4094ba..9d4f207ee6d 100644
--- a/src/mame/drivers/photon2.cpp
+++ b/src/mame/drivers/photon2.cpp
@@ -358,29 +358,30 @@ void photon2_state::machine_start()
save_item(NAME(m_nmi_enable));
}
-MACHINE_CONFIG_START(photon2_state::photon2)
+void photon2_state::photon2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 3500000) /* 3.5 MHz */
- MCFG_DEVICE_PROGRAM_MAP(spectrum_mem)
- MCFG_DEVICE_IO_MAP(spectrum_io)
+ Z80(config, m_maincpu, 3500000); /* 3.5 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &photon2_state::spectrum_mem);
+ m_maincpu->set_addrmap(AS_IO, &photon2_state::spectrum_io);
TIMER(config, "scantimer").configure_scanline(FUNC(photon2_state::spec_interrupt_hack), "screen", 0, 1);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50.08)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
- MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_DRIVER(photon2_state, screen_update_spectrum)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, photon2_state, screen_vblank_spectrum))
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50.08);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT);
+ screen.set_visarea(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1);
+ screen.set_screen_update(FUNC(photon2_state::screen_update_spectrum));
+ screen.screen_vblank().set(FUNC(photon2_state::screen_vblank_spectrum));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(photon2_state::photon2_palette), 16);
/* sound hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
/*************************************
*
diff --git a/src/mame/drivers/pinball2k.cpp b/src/mame/drivers/pinball2k.cpp
index 0488e5687fb..eda9e7d8e0d 100644
--- a/src/mame/drivers/pinball2k.cpp
+++ b/src/mame/drivers/pinball2k.cpp
@@ -605,10 +605,10 @@ void pinball2k_state::ramdac_map(address_map &map)
MACHINE_CONFIG_START(pinball2k_state::mediagx)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MEDIAGX, 166000000)
- MCFG_DEVICE_PROGRAM_MAP(mediagx_map)
- MCFG_DEVICE_IO_MAP(mediagx_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ MEDIAGX(config, m_maincpu, 166000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pinball2k_state::mediagx_map);
+ m_maincpu->set_addrmap(AS_IO, &pinball2k_state::mediagx_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
pcat_common(config);
@@ -622,14 +622,14 @@ MACHINE_CONFIG_START(pinball2k_state::mediagx)
m_ramdac->set_addrmap(0, &pinball2k_state::ramdac_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(pinball2k_state, screen_update_mediagx)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(640, 480);
+ m_screen->set_visarea(0, 639, 0, 239);
+ m_screen->set_screen_update(FUNC(pinball2k_state::screen_update_mediagx));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cga);
- MCFG_PALETTE_ADD("palette", 256)
+ PALETTE(config, m_palette).set_entries(256);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp
index 8530e42128a..bd86b6567a6 100644
--- a/src/mame/drivers/pingpong.cpp
+++ b/src/mame/drivers/pingpong.cpp
@@ -448,22 +448,22 @@ static GFXDECODE_START( gfx_pingpong )
GFXDECODE_END
-MACHINE_CONFIG_START(pingpong_state::pingpong)
-
+void pingpong_state::pingpong(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80,18432000/6) /* 3.072 MHz (probably) */
- MCFG_DEVICE_PROGRAM_MAP(pingpong_map)
+ Z80(config, m_maincpu,18432000/6); /* 3.072 MHz (probably) */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pingpong_state::pingpong_map);
TIMER(config, "scantimer").configure_scanline(FUNC(pingpong_state::pingpong_interrupt), "screen", 0, 1);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(456, 262)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pingpong_state, screen_update_pingpong)
- MCFG_SCREEN_PALETTE(m_palette)
+ 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(456, 262);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pingpong_state::screen_update_pingpong));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pingpong);
PALETTE(config, m_palette, FUNC(pingpong_state::pingpong_palette), 64*4+64*4, 32);
@@ -471,19 +471,18 @@ MACHINE_CONFIG_START(pingpong_state::pingpong)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76496, 18432000/8)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ SN76496(config, "snsnd", 18432000/8).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/* too fast! */
-MACHINE_CONFIG_START(pingpong_state::merlinmm)
+void pingpong_state::merlinmm(machine_config &config)
+{
pingpong(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(merlinmm_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &pingpong_state::merlinmm_map);
subdevice<timer_device>("scantimer")->set_callback(FUNC(pingpong_state::merlinmm_interrupt));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/pinkiri8.cpp b/src/mame/drivers/pinkiri8.cpp
index 093e4d149ab..d5ad19d1baa 100644
--- a/src/mame/drivers/pinkiri8.cpp
+++ b/src/mame/drivers/pinkiri8.cpp
@@ -1106,32 +1106,31 @@ static GFXDECODE_START( gfx_pinkiri8 )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 0x100 )
GFXDECODE_END
-MACHINE_CONFIG_START(pinkiri8_state::pinkiri8)
- MCFG_DEVICE_ADD("maincpu",Z180,XTAL(32'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(pinkiri8_map)
- MCFG_DEVICE_IO_MAP(pinkiri8_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pinkiri8_state, nmi_line_assert)
-
- 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, 62*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pinkiri8_state, screen_update_pinkiri8)
- MCFG_SCREEN_PALETTE("palette")
+void pinkiri8_state::pinkiri8(machine_config &config)
+{
+ Z180(config, m_maincpu, XTAL(32'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pinkiri8_state::pinkiri8_map);
+ m_maincpu->set_addrmap(AS_IO, &pinkiri8_state::pinkiri8_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pinkiri8_state::nmi_line_assert));
+
+ 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, 62*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(pinkiri8_state::screen_update_pinkiri8));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pinkiri8);
- MCFG_PALETTE_ADD("palette", 0x2000)
-
+ PALETTE(config, m_palette).set_entries(0x2000);
- MCFG_DEVICE_ADD("janshivdp", JANSHIVDP, 0)
+ JANSHIVDP(config, m_vdp, 0);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); // clock frequency & pin 7 not verified
+}
/***************************************************************************
diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp
index 07595c472c4..9f7a1f31b32 100644
--- a/src/mame/drivers/pirates.cpp
+++ b/src/mame/drivers/pirates.cpp
@@ -252,30 +252,30 @@ GFXDECODE_END
/* Machine Driver + Related bits */
-MACHINE_CONFIG_START(pirates_state::pirates)
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16mhz */
- MCFG_DEVICE_PROGRAM_MAP(pirates_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pirates_state, irq1_line_hold)
+void pirates_state::pirates(machine_config &config)
+{
+ M68000(config, m_maincpu, 16000000); /* 16mhz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pirates_state::pirates_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pirates_state::irq1_line_hold));
EEPROM_93C46_16BIT(config, "eeprom");
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pirates);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- 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(pirates_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ 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(36*8, 32*8);
+ screen.set_visarea(0*8, 36*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pirates_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x2000);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1333333, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, 1333333, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp
index 0dfc7b2a8bb..5933f7d580c 100644
--- a/src/mame/drivers/piratesh.cpp
+++ b/src/mame/drivers/piratesh.cpp
@@ -616,7 +616,7 @@ void piratesh_state::piratesh(machine_config &config)
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
-// MCFG_SCREEN_REFRESH_RATE(60)
+// screen.set_refresh_hz(60);
screen.set_raw(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223); // TODO
screen.set_vblank_time(ATTOSECONDS_IN_USEC(600));
screen.set_size(64*8, 32*8);
diff --git a/src/mame/drivers/pitagjr.cpp b/src/mame/drivers/pitagjr.cpp
index f2b30986bfc..9c9be7f61b7 100644
--- a/src/mame/drivers/pitagjr.cpp
+++ b/src/mame/drivers/pitagjr.cpp
@@ -209,22 +209,23 @@ uint32_t pitagjr_state::screen_update(screen_device &screen, bitmap_ind16 &bitma
return 0;
}
-MACHINE_CONFIG_START(pitagjr_state::pitajr)
+void pitagjr_state::pitajr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", HD63705, XTAL(2'000'000)) // probably a m6805-based MCU with internal boot ROM
- MCFG_DEVICE_PROGRAM_MAP(pitajr_mem)
+ HD63705(config, m_maincpu, XTAL(2'000'000)); // probably a m6805-based MCU with internal boot ROM
+ m_maincpu->set_addrmap(AS_PROGRAM, &pitagjr_state::pitajr_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(pitagjr_state, screen_update)
- MCFG_SCREEN_SIZE( 200, 100 ) // FIXME
- MCFG_SCREEN_VISIBLE_AREA( 0, 200-1, 0, 100-1 )
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(pitagjr_state::screen_update));
+ screen.set_size(200, 100); // FIXME
+ screen.set_visarea(0, 200-1, 0, 100-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pitagjr_state::pitagjr_palette), 2);
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/pk8000.cpp b/src/mame/drivers/pk8000.cpp
index d26f7998579..b0a4c204aeb 100644
--- a/src/mame/drivers/pk8000.cpp
+++ b/src/mame/drivers/pk8000.cpp
@@ -360,22 +360,23 @@ uint32_t pk8000_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
return video_update(screen, bitmap, cliprect, m_ram->pointer());
}
-MACHINE_CONFIG_START(pk8000_state::pk8000)
+void pk8000_state::pk8000(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",I8080, 1780000)
- MCFG_DEVICE_PROGRAM_MAP(pk8000_mem)
- MCFG_DEVICE_IO_MAP(pk8000_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pk8000_state, interrupt)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pk8000_state, irq_callback)
+ I8080(config, m_maincpu, 1780000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pk8000_state::pk8000_mem);
+ m_maincpu->set_addrmap(AS_IO, &pk8000_state::pk8000_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pk8000_state::interrupt));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(pk8000_state::irq_callback));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(256+32, 192+32)
- MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1)
- MCFG_SCREEN_UPDATE_DRIVER(pk8000_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(256+32, 192+32);
+ screen.set_visarea(0, 256+32-1, 0, 192+32-1);
+ screen.set_screen_update(FUNC(pk8000_state::screen_update));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pk8000_state::pk8000_palette), 16);
@@ -400,7 +401,7 @@ MACHINE_CONFIG_START(pk8000_state::pk8000)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K");
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( vesta )
diff --git a/src/mame/drivers/pk8020.cpp b/src/mame/drivers/pk8020.cpp
index f34e5bb292a..734ce7c32a6 100644
--- a/src/mame/drivers/pk8020.cpp
+++ b/src/mame/drivers/pk8020.cpp
@@ -189,22 +189,23 @@ static void pk8020_floppies(device_slot_interface &device)
* 7 floppy
*/
/* Machine driver */
-MACHINE_CONFIG_START(pk8020_state::pk8020)
+void pk8020_state::pk8020(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8080, 20_MHz_XTAL / 8)
- MCFG_DEVICE_PROGRAM_MAP(pk8020_mem)
- MCFG_DEVICE_IO_MAP(pk8020_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pk8020_state, pk8020_interrupt)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
+ I8080(config, m_maincpu, 20_MHz_XTAL / 8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pk8020_state::pk8020_mem);
+ m_maincpu->set_addrmap(AS_IO, &pk8020_state::pk8020_io);
+ m_maincpu->set_vblank_int("screen", FUNC(pk8020_state::pk8020_interrupt));
+ m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(512, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(pk8020_state, screen_update_pk8020)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(512, 256);
+ screen.set_visarea(0, 512-1, 0, 256-1);
+ screen.set_screen_update(FUNC(pk8020_state::screen_update_pk8020));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_pk8020);
PALETTE(config, m_palette, FUNC(pk8020_state::pk8020_palette), 16);
@@ -262,7 +263,7 @@ MACHINE_CONFIG_START(pk8020_state::pk8020)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("258K").set_default_value(0x00); // 64 + 4*48 + 2 = 258
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/pktgaldx.cpp b/src/mame/drivers/pktgaldx.cpp
index 65e659bb4ff..2bbb8596766 100644
--- a/src/mame/drivers/pktgaldx.cpp
+++ b/src/mame/drivers/pktgaldx.cpp
@@ -338,24 +338,24 @@ void pktgaldx_state::machine_start()
{
}
-MACHINE_CONFIG_START(pktgaldx_state::pktgaldx)
-
+void pktgaldx_state::pktgaldx(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 28_MHz_XTAL / 2) // The clock input is 14.000MHz on pin 6
- MCFG_DEVICE_PROGRAM_MAP(pktgaldx_map)
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
+ M68000(config, m_maincpu, 28_MHz_XTAL / 2); // The clock input is 14.000MHz on pin 6
+ m_maincpu->set_addrmap(AS_PROGRAM, &pktgaldx_state::pktgaldx_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &pktgaldx_state::decrypted_opcodes_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldx)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pktgaldx_state, vblank_w))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(pktgaldx_state::screen_update_pktgaldx));
+ screen.screen_vblank().set(FUNC(pktgaldx_state::vblank_w));
+ screen.set_palette(m_palette);
- PALETTE(config, "palette").set_format(palette_device::xBGR_888, 4096);
+ PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 4096);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pktgaldx);
@@ -389,31 +389,31 @@ MACHINE_CONFIG_START(pktgaldx_state::pktgaldx)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32.22_MHz_XTAL / 32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75)
-
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32.22_MHz_XTAL / 16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60)
-MACHINE_CONFIG_END
+ okim6295_device &oki1(OKIM6295(config, "oki1", 32.22_MHz_XTAL / 32, okim6295_device::PIN7_HIGH));
+ oki1.add_route(ALL_OUTPUTS, "lspeaker", 0.75);
+ oki1.add_route(ALL_OUTPUTS, "rspeaker", 0.75);
+ OKIM6295(config, m_oki2, 32.22_MHz_XTAL / 16, okim6295_device::PIN7_HIGH);
+ m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.60);
+ m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.60);
+}
-MACHINE_CONFIG_START(pktgaldx_state::pktgaldb)
+void pktgaldx_state::pktgaldb(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(pktgaldb_map)
+ M68000(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pktgaldx_state::pktgaldb_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldb)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pktgaldx_state, vblank_w))
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(pktgaldx_state::screen_update_pktgaldb));
+ screen.screen_vblank().set(FUNC(pktgaldx_state::vblank_w));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 4096);
@@ -423,14 +423,14 @@ MACHINE_CONFIG_START(pktgaldx_state::pktgaldb)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75)
+ okim6295_device &oki1(OKIM6295(config, "oki1", 32220000/32, okim6295_device::PIN7_HIGH));
+ oki1.add_route(ALL_OUTPUTS, "lspeaker", 0.75);
+ oki1.add_route(ALL_OUTPUTS, "rspeaker", 0.75);
- MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki2, 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.60);
+ m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.60);
+}
ROM_START( pktgaldx )
diff --git a/src/mame/drivers/playmark.cpp b/src/mame/drivers/playmark.cpp
index 688a8804a9f..e3043157202 100644
--- a/src/mame/drivers/playmark.cpp
+++ b/src/mame/drivers/playmark.cpp
@@ -1041,12 +1041,12 @@ MACHINE_RESET_MEMBER(playmark_state,playmark)
m_dispenser_latch = 0;
}
-MACHINE_CONFIG_START(playmark_state::bigtwin)
-
+void playmark_state::bigtwin(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(bigtwin_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold)
+ M68000(config, m_maincpu, 12000000); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::bigtwin_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold));
PIC16C57(config, m_audiocpu, 12000000);
m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w));
@@ -1059,13 +1059,13 @@ MACHINE_CONFIG_START(playmark_state::bigtwin)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwin)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_bigtwin));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigtwin);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1075,17 +1075,17 @@ MACHINE_CONFIG_START(playmark_state::bigtwin)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::bigtwinb)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::bigtwinb(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(bigtwinb_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold)
+ M68000(config, m_maincpu, XTAL(24'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::bigtwinb_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2);
m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w));
@@ -1098,13 +1098,13 @@ MACHINE_CONFIG_START(playmark_state::bigtwinb)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwinb)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_bigtwinb));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigtwinb);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1114,17 +1114,17 @@ MACHINE_CONFIG_START(playmark_state::bigtwinb)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::wbeachvl)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::wbeachvl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wbeachvl_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold)
+ M68000(config, m_maincpu, 12000000); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::wbeachvl_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* 12MHz with internal 4x divisor */
m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // wrong?
@@ -1140,13 +1140,13 @@ MACHINE_CONFIG_START(playmark_state::wbeachvl)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_wbeachvl)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_wbeachvl));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_wbeachvl);
PALETTE(config, m_palette).set_format(palette_device::RGBx_555, 2048);
@@ -1156,17 +1156,17 @@ MACHINE_CONFIG_START(playmark_state::wbeachvl)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::excelsr)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::excelsr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(excelsr_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold)
+ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::excelsr_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* 12MHz with internal 4x divisor */
m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w));
@@ -1179,13 +1179,13 @@ MACHINE_CONFIG_START(playmark_state::excelsr)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_excelsr)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_excelsr));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_excelsr);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1195,17 +1195,17 @@ MACHINE_CONFIG_START(playmark_state::excelsr)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* 1MHz resonator */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::hrdtimes)
+ OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* 1MHz resonator */
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::hrdtimes(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(hrdtimes_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold)
+ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::hrdtimes_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */
// m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead
@@ -1219,13 +1219,13 @@ MACHINE_CONFIG_START(playmark_state::hrdtimes)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_hrdtimes);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1235,17 +1235,17 @@ MACHINE_CONFIG_START(playmark_state::hrdtimes)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::hotmind)
+ OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::hotmind(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(hotmind_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold) // irq 2 and 6 point to the same location on hotmind
+ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::hotmind_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold)); // irq 2 and 6 point to the same location on hotmind
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */
// m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead
@@ -1260,13 +1260,13 @@ MACHINE_CONFIG_START(playmark_state::hotmind)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_hotmind);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1279,17 +1279,17 @@ MACHINE_CONFIG_START(playmark_state::hotmind)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(playmark_state::luckboomh)
+ OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
+void playmark_state::luckboomh(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(luckboomh_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold)
+ M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::luckboomh_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold));
PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */
// m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead
@@ -1304,13 +1304,13 @@ MACHINE_CONFIG_START(playmark_state::luckboomh)
MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_luckboomh);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024);
@@ -1323,10 +1323,10 @@ MACHINE_CONFIG_START(playmark_state::luckboomh)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &playmark_state::oki_map);
+}
/***************************************************************************
diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp
index 9ff154aacdb..95fc4a8b922 100644
--- a/src/mame/drivers/plus4.cpp
+++ b/src/mame/drivers/plus4.cpp
@@ -837,7 +837,7 @@ void plus4_state::machine_reset()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( plus4 )
+// machine_config( plus4 )
//-------------------------------------------------
void plus4_state::plus4(machine_config &config)
@@ -939,7 +939,7 @@ void plus4_state::plus4(machine_config &config)
//-------------------------------------------------
-// MACHINE_CONFIG( plus4p )
+// machine_config( plus4p )
//-------------------------------------------------
void c16_state::plus4p(machine_config &config)
@@ -958,7 +958,7 @@ void c16_state::plus4p(machine_config &config)
}
//-------------------------------------------------
-// MACHINE_CONFIG( plus4n )
+// machine_config( plus4n )
//-------------------------------------------------
void c16_state::plus4n(machine_config &config)
@@ -978,7 +978,7 @@ void c16_state::plus4n(machine_config &config)
//-------------------------------------------------
-// MACHINE_CONFIG( c16n )
+// machine_config( c16n )
//-------------------------------------------------
void c16_state::c16n(machine_config &config)
@@ -999,7 +999,7 @@ void c16_state::c16n(machine_config &config)
//-------------------------------------------------
-// MACHINE_CONFIG( c16p )
+// machine_config( c16p )
//-------------------------------------------------
void c16_state::c16p(machine_config &config)
@@ -1027,7 +1027,7 @@ void c16_state::c232(machine_config &config)
//-------------------------------------------------
-// MACHINE_CONFIG( v364 )
+// machine_config( v364 )
//-------------------------------------------------
void c16_state::v364(machine_config &config)
diff --git a/src/mame/drivers/pmi80.cpp b/src/mame/drivers/pmi80.cpp
index 86ace8c1736..93a6f48aa8a 100644
--- a/src/mame/drivers/pmi80.cpp
+++ b/src/mame/drivers/pmi80.cpp
@@ -168,16 +168,17 @@ void pmi80_state::machine_start()
}
-MACHINE_CONFIG_START(pmi80_state::pmi80)
+void pmi80_state::pmi80(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",I8080, XTAL(1'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pmi80_mem)
- MCFG_DEVICE_IO_MAP(pmi80_io)
+ I8080(config, m_maincpu, XTAL(1'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pmi80_state::pmi80_mem);
+ m_maincpu->set_addrmap(AS_IO, &pmi80_state::pmi80_io);
/* video hardware */
config.set_default_layout(layout_pmi80);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pmi80 )
diff --git a/src/mame/drivers/pockchal.cpp b/src/mame/drivers/pockchal.cpp
index ec9f541aa11..f0a699cd39d 100644
--- a/src/mame/drivers/pockchal.cpp
+++ b/src/mame/drivers/pockchal.cpp
@@ -101,23 +101,22 @@ void pockchalv1_state::machine_reset()
MACHINE_CONFIG_START(pockchalv1_state::pockchalv1)
-
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", TMP90845,8000000) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(pockchalv1_map)
-// MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pockchalv1_state, irq0_line_hold)
+ TMP90845(config, m_maincpu, 8000000); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &pockchalv1_state::pockchalv1_map);
+// m_maincpu->->set_vblank_int("screen", FUNC(pockchalv1_state::irq0_line_hold));
// wrong, it's a b&w / greyscale thing
PALETTE(config, "palette").set_format(palette_device::xRGB_444, 0x100).set_endianness(ENDIANNESS_BIG);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_DRIVER(pockchalv1_state, screen_update_pockchalv1)
- MCFG_SCREEN_PALETTE("palette")
+ 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(256, 256);
+ screen.set_visarea(0, 256-1, 16, 256-16-1);
+ screen.set_screen_update(FUNC(pockchalv1_state::screen_update_pockchalv1));
+ screen.set_palette("palette");
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "pockchalw_cart")
MCFG_GENERIC_EXTENSIONS("bin")
@@ -125,7 +124,6 @@ MACHINE_CONFIG_START(pockchalv1_state::pockchalv1)
MCFG_GENERIC_MANDATORY
SOFTWARE_LIST(config, "pc1_list").set_compatible("pockchalw");
-
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pockstat.cpp b/src/mame/drivers/pockstat.cpp
index 73792f320ec..f78ee0d9f40 100644
--- a/src/mame/drivers/pockstat.cpp
+++ b/src/mame/drivers/pockstat.cpp
@@ -981,16 +981,16 @@ DEVICE_IMAGE_LOAD_MEMBER( pockstat_state, pockstat_flash )
MACHINE_CONFIG_START(pockstat_state::pockstat)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM7, DEFAULT_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(pockstat_mem)
+ ARM7(config, m_maincpu, DEFAULT_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pockstat_state::pockstat_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(32, 32)
- MCFG_SCREEN_VISIBLE_AREA(0, 32-1, 0, 32-1)
- MCFG_SCREEN_UPDATE_DRIVER(pockstat_state, screen_update_pockstat)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(32, 32);
+ screen.set_visarea(0, 32-1, 0, 32-1);
+ screen.set_screen_update(FUNC(pockstat_state::screen_update_pockstat));
PALETTE(config, "palette", palette_device::MONOCHROME);
diff --git a/src/mame/drivers/pofo.cpp b/src/mame/drivers/pofo.cpp
index 239e8c3bb56..01a62f67877 100644
--- a/src/mame/drivers/pofo.cpp
+++ b/src/mame/drivers/pofo.cpp
@@ -1011,23 +1011,24 @@ void portfolio_state::machine_reset()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( portfolio )
+// machine_config( portfolio )
//-------------------------------------------------
-MACHINE_CONFIG_START(portfolio_state::portfolio)
+void portfolio_state::portfolio(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(M80C88A_TAG, I8088, XTAL(4'915'200))
- MCFG_DEVICE_PROGRAM_MAP(portfolio_mem)
- MCFG_DEVICE_IO_MAP(portfolio_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(portfolio_state,portfolio_int_ack)
+ I8088(config, m_maincpu, XTAL(4'915'200));
+ m_maincpu->set_addrmap(AS_PROGRAM, &portfolio_state::portfolio_mem);
+ m_maincpu->set_addrmap(AS_IO, &portfolio_state::portfolio_io);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(portfolio_state::portfolio_int_ack));
// video hardware
- MCFG_SCREEN_ADD(SCREEN_TAG, LCD)
- MCFG_SCREEN_REFRESH_RATE(72)
- MCFG_SCREEN_UPDATE_DEVICE(HD61830_TAG, hd61830_device, screen_update)
- MCFG_SCREEN_SIZE(240, 64)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 64-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(72);
+ screen.set_screen_update(HD61830_TAG, FUNC(hd61830_device::screen_update));
+ screen.set_size(240, 64);
+ screen.set_visarea(0, 240-1, 0, 64-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(portfolio_state::portfolio_palette), 2);
@@ -1040,8 +1041,7 @@ MACHINE_CONFIG_START(portfolio_state::portfolio)
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD(PCD3311T_TAG, PCD3311, XTAL(3'578'640))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ PCD3311(config, m_dtmf, XTAL(3'578'640)).add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
PORTFOLIO_MEMORY_CARD_SLOT(config, m_ccm, portfolio_memory_cards, nullptr);
@@ -1064,7 +1064,7 @@ MACHINE_CONFIG_START(portfolio_state::portfolio)
RAM(config, RAM_TAG).set_default_size("128K");
NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp
index e7926131184..d7cf7be86f4 100644
--- a/src/mame/drivers/poisk1.cpp
+++ b/src/mame/drivers/poisk1.cpp
@@ -634,7 +634,8 @@ static INPUT_PORTS_START( poisk1 )
PORT_INCLUDE( poisk1_keyboard_v91 )
INPUT_PORTS_END
-MACHINE_CONFIG_START(p1_state::poisk1)
+void p1_state::poisk1(machine_config &config)
+{
/* basic machine hardware */
I8088(config, m_maincpu, 5000000);
m_maincpu->set_addrmap(AS_PROGRAM, &p1_state::poisk1_map);
@@ -673,10 +674,10 @@ MACHINE_CONFIG_START(p1_state::poisk1)
m_isabus->irq5_callback().set(m_pic8259, FUNC(pic8259_device::ir5_w));
m_isabus->irq7_callback().set(m_pic8259, FUNC(pic8259_device::ir7_w));
- MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", p1_isa8_cards, "fdc", false) // FIXME: determine ISA bus clock
- MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false)
- MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false)
+ ISA8_SLOT(config, "isa1", 0, m_isabus, p1_isa8_cards, "fdc", false); // FIXME: determine ISA bus clock
+ ISA8_SLOT(config, "isa2", 0, m_isabus, p1_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa3", 0, m_isabus, p1_isa8_cards, nullptr, false);
+ ISA8_SLOT(config, "isa4", 0, m_isabus, p1_isa8_cards, nullptr, false);
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);
@@ -685,19 +686,18 @@ MACHINE_CONFIG_START(p1_state::poisk1)
// SOFTWARE_LIST(config, "cass_list").set_original("poisk1_cass");
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD( "speaker", SPEAKER_SOUND )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 )
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
- MCFG_SCREEN_ADD( "screen", RASTER )
- MCFG_SCREEN_RAW_PARAMS( XTAL(15'000'000), 912,0,640, 262,0,200 )
- MCFG_SCREEN_UPDATE_DRIVER( p1_state, screen_update )
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(15'000'000), 912,0,640, 262,0,200);
+ m_screen->set_screen_update(FUNC(p1_state::screen_update));
/* XXX verify palette */
PALETTE(config, m_palette, FUNC(p1_state::p1_palette), CGA_PALETTE_SETS * 16);
/* internal ram */
RAM(config, RAM_TAG).set_default_size("512K");
-MACHINE_CONFIG_END
+}
ROM_START( poisk1 )
ROM_REGION16_LE(0x10000,"bios", 0)
diff --git a/src/mame/drivers/pokechmp.cpp b/src/mame/drivers/pokechmp.cpp
index 2c2d62c8d2b..11662fdc8c7 100644
--- a/src/mame/drivers/pokechmp.cpp
+++ b/src/mame/drivers/pokechmp.cpp
@@ -226,8 +226,8 @@ WRITE_LINE_MEMBER(pokechmp_state::sound_irq)
m_audiocpu->set_input_line(0, HOLD_LINE);
}
-MACHINE_CONFIG_START(pokechmp_state::pokechmp)
-
+void pokechmp_state::pokechmp(machine_config &config)
+{
/* basic machine hardware */
M6502(config, m_maincpu, 4_MHz_XTAL/4);
m_maincpu->set_addrmap(AS_PROGRAM, &pokechmp_state::pokechmp_map);
@@ -254,17 +254,15 @@ MACHINE_CONFIG_START(pokechmp_state::pokechmp)
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("ym1", YM2203, XTAL(4'000'000)/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
+ YM2203(config, "ym1", XTAL(4'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.60);
- MCFG_DEVICE_ADD("ym2", YM3812, XTAL(24'000'000)/16)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ YM3812(config, "ym2", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(24'000'000)/16, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* sound fx */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_DEVICE_ADDRESS_MAP(0, pokechmp_oki_map)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", XTAL(24'000'000)/16, okim6295_device::PIN7_LOW));
+ oki.add_route(ALL_OUTPUTS, "mono", 0.50); /* sound fx */
+ oki.add_route(ALL_OUTPUTS, "mono", 0.50);
+ oki.set_addrmap(0, &pokechmp_state::pokechmp_oki_map);
+}
void pokechmp_state::init_pokechmp()
{
diff --git a/src/mame/drivers/poker72.cpp b/src/mame/drivers/poker72.cpp
index ff8c55b240a..96522df743a 100644
--- a/src/mame/drivers/poker72.cpp
+++ b/src/mame/drivers/poker72.cpp
@@ -371,20 +371,21 @@ void poker72_state::machine_reset()
membank("bank1")->set_entry(0);
}
-MACHINE_CONFIG_START(poker72_state::poker72)
+void poker72_state::poker72(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,8000000) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(poker72_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poker72_state, irq0_line_hold)
+ Z80(config, m_maincpu, 8000000); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &poker72_state::poker72_map);
+ m_maincpu->set_vblank_int("screen", FUNC(poker72_state::irq0_line_hold));
/* 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, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(poker72_state, screen_update_poker72)
- MCFG_SCREEN_PALETTE(m_palette)
+ 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, 32*8);
+ screen.set_visarea(0, 64*8-1, 0, 32*8-1);
+ screen.set_screen_update(FUNC(poker72_state::screen_update_poker72));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_poker72);
PALETTE(config, m_palette, FUNC(poker72_state::poker72_palette), 0xe00);
@@ -395,7 +396,7 @@ MACHINE_CONFIG_START(poker72_state::poker72)
ay.port_a_read_callback().set_ioport("SW2");
ay.port_b_read_callback().set_ioport("SW3");
ay.add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp
index 13c5914884a..06d9be0e9cf 100644
--- a/src/mame/drivers/poly.cpp
+++ b/src/mame/drivers/poly.cpp
@@ -248,22 +248,23 @@ static void poly_floppies(device_slot_interface &device)
}
-MACHINE_CONFIG_START(poly_state::poly)
+void poly_state::poly(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809, 12.0576_MHz_XTAL / 3)
- MCFG_DEVICE_PROGRAM_MAP(poly_mem)
+ MC6809(config, m_maincpu, 12.0576_MHz_XTAL / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &poly_state::poly_mem);
ADDRESS_MAP_BANK(config, "bankdev").set_map(&poly_state::poly_bank).set_options(ENDIANNESS_LITTLE, 8, 17, 0x10000);
INPUT_MERGER_ANY_HIGH(config, "irqs").output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_SIZE(40 * 12, 24 * 20)
- MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 24 * 20 - 1)
- MCFG_SCREEN_UPDATE_DRIVER(poly_state, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_size(40 * 12, 24 * 20);
+ screen.set_visarea(0, 40 * 12 - 1, 0, 24 * 20 - 1);
+ screen.set_screen_update(FUNC(poly_state::screen_update));
SAA5050(config, m_trom[0], 12.0576_MHz_XTAL / 2);
m_trom[0]->d_cb().set(FUNC(poly_state::videoram_1_r));
@@ -275,8 +276,7 @@ MACHINE_CONFIG_START(poly_state::poly)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
/* internal ram */
RAM(config, m_ram).set_default_size("128K").set_extra_options("64K");
@@ -342,7 +342,7 @@ MACHINE_CONFIG_START(poly_state::poly)
/* software lists */
SOFTWARE_LIST(config, "flop_list").set_original("poly_flop").set_filter("POLY1");
-MACHINE_CONFIG_END
+}
void poly_state::poly2(machine_config &config)
diff --git a/src/mame/drivers/poly88.cpp b/src/mame/drivers/poly88.cpp
index d082c962649..60ea6f60a35 100644
--- a/src/mame/drivers/poly88.cpp
+++ b/src/mame/drivers/poly88.cpp
@@ -197,20 +197,20 @@ GFXDECODE_END
MACHINE_CONFIG_START(poly88_state::poly88)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(16'588'800) / 9) // uses 8224 clock generator
- MCFG_DEVICE_PROGRAM_MAP(poly88_mem)
- MCFG_DEVICE_IO_MAP(poly88_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poly88_state, poly88_interrupt)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(poly88_state,poly88_irq_callback)
+ I8080A(config, m_maincpu, XTAL(16'588'800) / 9); // uses 8224 clock generator
+ m_maincpu->set_addrmap(AS_PROGRAM, &poly88_state::poly88_mem);
+ m_maincpu->set_addrmap(AS_IO, &poly88_state::poly88_io);
+ m_maincpu->set_vblank_int("screen", FUNC(poly88_state::poly88_interrupt));
+ m_maincpu->set_irq_acknowledge_callback(FUNC(poly88_state::poly88_irq_callback));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(64*10, 16*15)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*10-1, 0, 16*15-1)
- MCFG_SCREEN_UPDATE_DRIVER(poly88_state, screen_update_poly88)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(64*10, 16*15);
+ screen.set_visarea(0, 64*10-1, 0, 16*15-1);
+ screen.set_screen_update(FUNC(poly88_state::screen_update_poly88));
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_poly88);
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -234,12 +234,12 @@ MACHINE_CONFIG_START(poly88_state::poly88)
MCFG_SNAPSHOT_ADD("snapshot", poly88_state, poly88, "img", attotime::from_seconds(2))
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(poly88_state::poly8813)
+void poly88_state::poly8813(machine_config &config)
+{
poly88(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(poly8813_mem)
- MCFG_DEVICE_IO_MAP(poly8813_io)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &poly88_state::poly8813_mem);
+ m_maincpu->set_addrmap(AS_IO, &poly88_state::poly8813_io);
+}
/* ROM definition */
ROM_START( poly88 )
diff --git a/src/mame/drivers/polyplay.cpp b/src/mame/drivers/polyplay.cpp
index 276dec717b0..e1c572457b9 100644
--- a/src/mame/drivers/polyplay.cpp
+++ b/src/mame/drivers/polyplay.cpp
@@ -276,7 +276,8 @@ GFXDECODE_END
/* the machine driver */
-MACHINE_CONFIG_START(polyplay_state::polyplay_zre)
+void polyplay_state::polyplay_zre(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, POLYPLAY_MAIN_CLOCK / 4); /* UB880D */
m_maincpu->set_daisy_config(daisy_chain_zre);
@@ -299,12 +300,12 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zre)
m_z80pio->out_pb_callback().set(FUNC(polyplay_state::pio_portb_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(polyplay_state, screen_update_polyplay)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(polyplay_state::screen_update_polyplay));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_polyplay);
PALETTE(config, m_palette, FUNC(polyplay_state::polyplay_palette), 10);
@@ -313,7 +314,7 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zre)
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker1).add_route(ALL_OUTPUTS, "mono", 0.5);
SPEAKER_SOUND(config, m_speaker2).add_route(ALL_OUTPUTS, "mono", 0.5);
-MACHINE_CONFIG_END
+}
void polyplay_state::polyplay_zrepp(machine_config &config)
{
diff --git a/src/mame/drivers/poolshrk.cpp b/src/mame/drivers/poolshrk.cpp
index 35efc9757e1..106d142f315 100644
--- a/src/mame/drivers/poolshrk.cpp
+++ b/src/mame/drivers/poolshrk.cpp
@@ -216,22 +216,22 @@ void poolshrk_state::poolshrk_palette(palette_device &palette) const
}
-MACHINE_CONFIG_START(poolshrk_state::poolshrk)
-
+void poolshrk_state::poolshrk(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6800, 11055000 / 8) /* ? */
- MCFG_DEVICE_PROGRAM_MAP(poolshrk_cpu_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poolshrk_state, irq0_line_assert)
+ M6800(config, m_maincpu, 11055000 / 8); /* ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &poolshrk_state::poolshrk_cpu_map);
+ m_maincpu->set_vblank_int("screen", FUNC(poolshrk_state::irq0_line_assert));
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(1, 255, 24, 255)
- MCFG_SCREEN_UPDATE_DRIVER(poolshrk_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_size(256, 256);
+ screen.set_visarea(1, 255, 24, 255);
+ screen.set_screen_update(FUNC(poolshrk_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_poolshrk);
PALETTE(config, m_palette, FUNC(poolshrk_state::poolshrk_palette), 4);
@@ -239,9 +239,8 @@ MACHINE_CONFIG_START(poolshrk_state::poolshrk)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("discrete", DISCRETE, poolshrk_discrete)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ DISCRETE(config, m_discrete, poolshrk_discrete).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
ROM_START( poolshrk )
diff --git a/src/mame/drivers/pooyan.cpp b/src/mame/drivers/pooyan.cpp
index 6bc9f9a649c..284134f4ad0 100644
--- a/src/mame/drivers/pooyan.cpp
+++ b/src/mame/drivers/pooyan.cpp
@@ -193,11 +193,11 @@ void pooyan_state::machine_start()
}
-MACHINE_CONFIG_START(pooyan_state::pooyan)
-
+void pooyan_state::pooyan(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/3/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ Z80(config, m_maincpu, MASTER_CLOCK/3/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pooyan_state::main_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // B2
mainlatch.q_out_cb<0>().set(FUNC(pooyan_state::irq_enable_w));
@@ -211,20 +211,20 @@ MACHINE_CONFIG_START(pooyan_state::pooyan)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- 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(pooyan_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pooyan_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ 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(pooyan_state::screen_update));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(pooyan_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pooyan);
PALETTE(config, m_palette, FUNC(pooyan_state::pooyan_palette), 16*16+16*16, 32);
/* sound hardware */
TIMEPLT_AUDIO(config, "timeplt_audio");
-MACHINE_CONFIG_END
+}
/*************************************
diff --git a/src/mame/drivers/popobear.cpp b/src/mame/drivers/popobear.cpp
index 9739224ef84..672c799b83e 100644
--- a/src/mame/drivers/popobear.cpp
+++ b/src/mame/drivers/popobear.cpp
@@ -642,22 +642,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(popobear_state::irq)
m_maincpu->set_input_line(2, ASSERT_LINE);
}
-MACHINE_CONFIG_START(popobear_state::popobear)
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(42'000'000)/4) // XTAL CORRECT, DIVISOR GUESSED
- MCFG_DEVICE_PROGRAM_MAP(popobear_mem)
+void popobear_state::popobear(machine_config &config)
+{
+ M68000(config, m_maincpu, XTAL(42'000'000)/4); // XTAL CORRECT, DIVISOR GUESSED
+ m_maincpu->set_addrmap(AS_PROGRAM, &popobear_state::popobear_mem);
// levels 2,3,5 look interesting
- //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", popobear_state, irq5_line_assert)
- //MCFG_DEVICE_PERIODIC_INT_DRIVER(popobear_state, irq2_line_assert, 120)
+ //->set_vblank_int("screen", popobear_state, irq5_line_assert)
+ //->set_periodic_int(FUNC(popobear_state, irq2_line_assert, 120)
TIMER(config, "scantimer").configure_scanline(FUNC(popobear_state::irq), "screen", 0, 1);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(popobear_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
-
- MCFG_SCREEN_SIZE(128*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 239)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(popobear_state::screen_update));
+ screen.set_palette(m_palette);
+ screen.set_size(128*8, 32*8);
+ screen.set_visarea(0, 479, 0, 239);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 256*2);
@@ -665,12 +665,10 @@ MACHINE_CONFIG_START(popobear_state::popobear)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_popobear);
- MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(42'000'000)/16) // XTAL CORRECT, DIVISOR GUESSED
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ YM2413(config, "ymsnd", XTAL(42'000'000)/16).add_route(ALL_OUTPUTS, "mono", 1.0); // XTAL CORRECT, DIVISOR GUESSED
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(42'000'000)/32, okim6295_device::PIN7_LOW) // XTAL CORRECT, DIVISOR GUESSED
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", XTAL(42'000'000)/32, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); // XTAL CORRECT, DIVISOR GUESSED
+}
ROM_START( popobear )
diff --git a/src/mame/drivers/popper.cpp b/src/mame/drivers/popper.cpp
index 6c17179780a..93bd11f34ab 100644
--- a/src/mame/drivers/popper.cpp
+++ b/src/mame/drivers/popper.cpp
@@ -534,20 +534,21 @@ void popper_state::machine_reset()
// MACHINE DEFINTIONS
//**************************************************************************
-MACHINE_CONFIG_START(popper_state::popper)
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/3/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+void popper_state::popper(machine_config &config)
+{
+ Z80(config, m_maincpu, XTAL(18'432'000)/3/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &popper_state::main_map);
- MCFG_DEVICE_ADD("subcpu", Z80, XTAL(18'432'000)/3/2)
- MCFG_DEVICE_PROGRAM_MAP(sub_map)
+ Z80(config, m_subcpu, XTAL(18'432'000)/3/2);
+ m_subcpu->set_addrmap(AS_PROGRAM, &popper_state::sub_map);
config.m_perfect_cpu_quantum = subtag("maincpu");
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(18'432'000)/3, 384, 48, 328, 264, 16, 240)
- MCFG_SCREEN_UPDATE_DRIVER(popper_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(XTAL(18'432'000)/3, 384, 48, 328, 264, 16, 240);
+ m_screen->set_screen_update(FUNC(popper_state::screen_update));
+ m_screen->set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_popper);
@@ -559,7 +560,7 @@ MACHINE_CONFIG_START(popper_state::popper)
AY8910(config, m_ay[0], XTAL(18'432'000)/3/2/2).add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, m_ay[1], XTAL(18'432'000)/3/2/2).add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
//**************************************************************************
diff --git a/src/mame/drivers/portrait.cpp b/src/mame/drivers/portrait.cpp
index 385f5720e95..5f0ea95b14e 100644
--- a/src/mame/drivers/portrait.cpp
+++ b/src/mame/drivers/portrait.cpp
@@ -254,23 +254,24 @@ static GFXDECODE_START( gfx_portrait )
GFXDECODE_END
-MACHINE_CONFIG_START(portrait_state::portrait)
- MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(portrait_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", portrait_state, irq0_line_hold)
+void portrait_state::portrait(machine_config &config)
+{
+ Z80(config, m_maincpu, 4000000); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &portrait_state::portrait_map);
+ m_maincpu->set_vblank_int("screen", FUNC(portrait_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", I8039, 3120000) /* ? */
- MCFG_DEVICE_PROGRAM_MAP(portrait_sound_map)
+ i8039_device &audiocpu(I8039(config, "audiocpu", 3120000)); /* ? */
+ audiocpu.set_addrmap(AS_PROGRAM, &portrait_state::portrait_sound_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 0*8, 40*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(portrait_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 64*8);
+ screen.set_visarea(0*8, 54*8-1, 0*8, 40*8-1);
+ screen.set_screen_update(FUNC(portrait_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_portrait);
PALETTE(config, m_palette, FUNC(portrait_state::portrait_palette), 0x800, 0x40);
@@ -281,7 +282,7 @@ MACHINE_CONFIG_START(portrait_state::portrait)
GENERIC_LATCH_8(config, "soundlatch");
TMS5200(config, m_tms, 640000).add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( portrait )
diff --git a/src/mame/drivers/potgoldu.cpp b/src/mame/drivers/potgoldu.cpp
index f6e19d70af8..3eb610b779f 100644
--- a/src/mame/drivers/potgoldu.cpp
+++ b/src/mame/drivers/potgoldu.cpp
@@ -78,8 +78,8 @@ static INPUT_PORTS_START( potgold )
INPUT_PORTS_END
-MACHINE_CONFIG_START(potgold_state::potgold)
-
+void potgold_state::potgold(machine_config &config)
+{
/* basic machine hardware */
TMS34010(config, m_maincpu, XTAL(40'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &potgold_state::potgold_map);
@@ -88,13 +88,13 @@ MACHINE_CONFIG_START(potgold_state::potgold)
m_maincpu->set_pixels_per_clock(1);
m_maincpu->set_scanline_rgb32_callback(FUNC(potgold_state::scanline_update));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200)
- MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_rgb32)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200);
+ screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_rgb32));
/* sound hardware */
/* YM2413 */
-MACHINE_CONFIG_END
+}
ROM_START( potgoldu )
ROM_REGION16_LE( 0x400000, "user1", 0 ) /* 34010 code */
diff --git a/src/mame/drivers/powerbal.cpp b/src/mame/drivers/powerbal.cpp
index 09cca74a673..d5ae925c83e 100644
--- a/src/mame/drivers/powerbal.cpp
+++ b/src/mame/drivers/powerbal.cpp
@@ -626,24 +626,24 @@ MACHINE_RESET_MEMBER(powerbal_state,powerbal)
configure_oki_banks();
}
-MACHINE_CONFIG_START(powerbal_state::powerbal)
-
+void powerbal_state::powerbal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(powerbal_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold)
+ M68000(config, m_maincpu, 12000000); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::powerbal_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq2_line_hold));
MCFG_MACHINE_START_OVERRIDE(powerbal_state,powerbal)
MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(61)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(128*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(61);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(128*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
+ screen.set_screen_update(FUNC(powerbal_state::screen_update_powerbal));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbal);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 512);
@@ -653,17 +653,17 @@ MACHINE_CONFIG_START(powerbal_state::powerbal)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(powerbal_state::magicstk)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &powerbal_state::oki_map);
+}
+void powerbal_state::magicstk(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(magicstk_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold)
+ M68000(config, m_maincpu, 12000000); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::magicstk_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq2_line_hold));
EEPROM_93C46_16BIT(config, "eeprom").default_value(0);
@@ -671,13 +671,13 @@ MACHINE_CONFIG_START(powerbal_state::magicstk)
MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal)
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(61)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(128*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(61);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(128*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
+ screen.set_screen_update(FUNC(powerbal_state::screen_update_powerbal));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbal);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 512);
@@ -687,25 +687,23 @@ MACHINE_CONFIG_START(powerbal_state::magicstk)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(powerbal_state::atombjt)
+ OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_oki->set_addrmap(0, &powerbal_state::oki_map);
+}
+void powerbal_state::atombjt(machine_config &config)
+{
powerbal(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(atombjt_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq6_line_hold)
+ m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::atombjt_map);
+ m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq6_line_hold));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(512, 256) \
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) \
+ subdevice<screen_device>("screen")->set_size(512, 256);
+ subdevice<screen_device>("screen")->set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
MCFG_VIDEO_START_OVERRIDE(powerbal_state,atombjt)
-MACHINE_CONFIG_END
+}
/*
Power Balls
diff --git a/src/mame/drivers/powerstack.cpp b/src/mame/drivers/powerstack.cpp
index 8f25734b9c3..d5444770d65 100644
--- a/src/mame/drivers/powerstack.cpp
+++ b/src/mame/drivers/powerstack.cpp
@@ -27,10 +27,11 @@ private:
static INPUT_PORTS_START( powerstack )
INPUT_PORTS_END
-MACHINE_CONFIG_START(powerstack_state::powerstack)
-// MCFG_DEVICE_ADD("maincpu", PPC604, 300'000'000) // PPC604E @ 300MHz
-// MCFG_DEVICE_PROGRAM_MAP(mem_map)
-MACHINE_CONFIG_END
+void powerstack_state::powerstack(machine_config &config)
+{
+// ppc604_device &maincpu(PPC604(config, "maincpu", 300'000'000)); // PPC604E @ 300MHz
+// maincpu.set_addrmap(AS_PROGRAM, &powerstack_state::mem_map);
+}
ROM_START( powerstk )
ROM_REGION( 0x80000, "roms", 0 )
diff --git a/src/mame/drivers/pp01.cpp b/src/mame/drivers/pp01.cpp
index 22386146fac..21f0d21d743 100644
--- a/src/mame/drivers/pp01.cpp
+++ b/src/mame/drivers/pp01.cpp
@@ -199,20 +199,21 @@ static INPUT_PORTS_START( pp01 )
INPUT_PORTS_END
/* Machine driver */
-MACHINE_CONFIG_START(pp01_state::pp01)
+void pp01_state::pp01(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8080, 2000000)
- MCFG_DEVICE_PROGRAM_MAP(pp01_mem)
- MCFG_DEVICE_IO_MAP(pp01_io)
+ I8080(config, m_maincpu, 2000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pp01_state::pp01_mem);
+ m_maincpu->set_addrmap(AS_IO, &pp01_state::pp01_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(pp01_state, screen_update_pp01)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 0, 256-1);
+ screen.set_screen_update(FUNC(pp01_state::screen_update_pp01));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(pp01_state::pp01_palette), 8);
@@ -222,7 +223,7 @@ MACHINE_CONFIG_START(pp01_state::pp01)
//WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
/* Devices */
- MCFG_DEVICE_ADD("uart", I8251, 0)
+ I8251(config, "uart", 0);
// when rts and dtr are both high, the uart is being used for cassette operations
PIT8253(config, m_pit, 0);
@@ -243,7 +244,7 @@ MACHINE_CONFIG_START(pp01_state::pp01)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K").set_default_value(0x00);
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/ppmast93.cpp b/src/mame/drivers/ppmast93.cpp
index 8e4a1a95396..5294c66c52f 100644
--- a/src/mame/drivers/ppmast93.cpp
+++ b/src/mame/drivers/ppmast93.cpp
@@ -373,26 +373,27 @@ uint32_t ppmast93_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
return 0;
}
-MACHINE_CONFIG_START(ppmast93_state::ppmast93)
+void ppmast93_state::ppmast93(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,5000000) /* 5 MHz */
- MCFG_DEVICE_PROGRAM_MAP(ppmast93_cpu1_map)
- MCFG_DEVICE_IO_MAP(ppmast93_cpu1_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ppmast93_state, irq0_line_hold)
+ Z80(config, m_maincpu, 5000000); /* 5 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &ppmast93_state::ppmast93_cpu1_map);
+ m_maincpu->set_addrmap(AS_IO, &ppmast93_state::ppmast93_cpu1_io);
+ m_maincpu->set_vblank_int("screen", FUNC(ppmast93_state::irq0_line_hold));
- MCFG_DEVICE_ADD("sub", Z80,5000000) /* 5 MHz */
- MCFG_DEVICE_PROGRAM_MAP(ppmast93_cpu2_map)
- MCFG_DEVICE_IO_MAP(ppmast93_cpu2_io)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(ppmast93_state, irq0_line_hold, 8000)
+ z80_device &sub(Z80(config, "sub", 5000000)); /* 5 MHz */
+ sub.set_addrmap(AS_PROGRAM, &ppmast93_state::ppmast93_cpu2_map);
+ sub.set_addrmap(AS_IO, &ppmast93_state::ppmast93_cpu2_io);
+ sub.set_periodic_int(FUNC(ppmast93_state::irq0_line_hold), attotime::from_hz(8000));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(55)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(ppmast93_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(55);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 0, 256-1);
+ screen.set_screen_update(FUNC(ppmast93_state::screen_update));
+ screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_ppmast93);
@@ -403,14 +404,13 @@ MACHINE_CONFIG_START(ppmast93_state::ppmast93)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("ymsnd", YM2413, 5000000/2)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
+ YM2413(config, "ymsnd", 5000000/2).add_route(ALL_OUTPUTS, "speaker", 1.0);
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.3); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
ROM_START( ppmast93 )
ROM_REGION( 0x20000, "maincpu", 0 )
diff --git a/src/mame/drivers/prestige.cpp b/src/mame/drivers/prestige.cpp
index de06047e6b3..eb89d393fc1 100644
--- a/src/mame/drivers/prestige.cpp
+++ b/src/mame/drivers/prestige.cpp
@@ -743,23 +743,24 @@ TIMER_DEVICE_CALLBACK_MEMBER(prestige_state::irq_timer)
m_maincpu->set_input_line(0, ASSERT_LINE);
}
-MACHINE_CONFIG_START(prestige_state::prestige_base)
+void prestige_state::prestige_base(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000)) // Z84C008
- MCFG_DEVICE_PROGRAM_MAP(prestige_mem)
- MCFG_DEVICE_IO_MAP(prestige_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(prestige_state,prestige_int_ack)
+ Z80(config, m_maincpu, XTAL(8'000'000)); // Z84C008
+ m_maincpu->set_addrmap(AS_PROGRAM, &prestige_state::prestige_mem);
+ m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io);
+ m_maincpu->set_irq_acknowledge_callback(FUNC(prestige_state::prestige_int_ack));
TIMER(config, "irq_timer").configure_periodic(FUNC(prestige_state::irq_timer), attotime::from_hz(200));
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_1bpp)
- MCFG_SCREEN_SIZE( 240, 100 )
- MCFG_SCREEN_VISIBLE_AREA( 0, 240-1, 0, 100-1 )
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(prestige_state::screen_update_1bpp));
+ screen.set_size(240, 100);
+ screen.set_visarea(0, 240-1, 0, 100-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(prestige_state::prestige_palette), 2);
@@ -768,32 +769,32 @@ MACHINE_CONFIG_START(prestige_state::prestige_base)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("64K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(prestige_state::glcolor)
+void prestige_state::glcolor(machine_config &config)
+{
prestige_base(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(glcolor_io)
+ m_maincpu->set_addrmap(AS_IO, &prestige_state::glcolor_io);
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_2bpp)
- MCFG_SCREEN_SIZE( 160, 80 )
- MCFG_SCREEN_VISIBLE_AREA( 0, 160-1, 0, 80-1 )
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_screen_update(FUNC(prestige_state::screen_update_2bpp));
+ screen.set_size(160, 80);
+ screen.set_visarea(0, 160-1, 0, 80-1);
subdevice<palette_device>("palette")->set_entries(4).set_init(FUNC(prestige_state::glcolor_palette));
SOFTWARE_LIST(config, "cart_list").set_original("glcolor");
SOFTWARE_LIST(config, "snotec_cart").set_compatible("snotec");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(prestige_state::glmcolor)
+void prestige_state::glmcolor(machine_config &config)
+{
glcolor(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(prestige_io)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io);
+}
void prestige_state::snotec(machine_config &config)
{
diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp
index 5fc7a9b154a..01d473632fe 100644
--- a/src/mame/drivers/primo.cpp
+++ b/src/mame/drivers/primo.cpp
@@ -248,19 +248,19 @@ static const struct CassetteOptions primo_cassette_options = {
MACHINE_CONFIG_START(primo_state::primoa32)
/* basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", Z80, 2500000 )
- MCFG_DEVICE_PROGRAM_MAP( primo32_mem)
- MCFG_DEVICE_IO_MAP( primoa_port)
+ Z80(config, m_maincpu, 2500000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo32_mem);
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primoa_port);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE( 50 )
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE( 256, 192 )
- MCFG_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 )
- MCFG_SCREEN_UPDATE_DRIVER(primo_state, screen_update_primo)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, primo_state, vblank_irq))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(50);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(256, 192);
+ m_screen->set_visarea(0, 256-1, 0, 192-1);
+ m_screen->set_screen_update(FUNC(primo_state::screen_update_primo));
+ m_screen->set_palette("palette");
+ m_screen->screen_vblank().set(FUNC(primo_state::vblank_irq));
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -286,49 +286,49 @@ MACHINE_CONFIG_START(primo_state::primoa32)
GENERIC_CARTSLOT(config, m_cart2, generic_plain_slot, nullptr, "bin,rom");
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(primo_state::primoa48)
+void primo_state::primoa48(machine_config &config)
+{
primoa32(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(primo48_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo48_mem);
+}
-MACHINE_CONFIG_START(primo_state::primoa64)
+void primo_state::primoa64(machine_config &config)
+{
primoa32(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(primo64_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo64_mem);
+}
-MACHINE_CONFIG_START(primo_state::primob32)
+void primo_state::primob32(machine_config &config)
+{
primoa32(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(primob_port)
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port);
MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(primo_state::primob48)
+void primo_state::primob48(machine_config &config)
+{
primoa48(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(primob_port)
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port);
MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(primo_state::primob64)
+void primo_state::primob64(machine_config &config)
+{
primoa64(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(primob_port)
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port);
MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(primo_state::primoc64)
+void primo_state::primoc64(machine_config &config)
+{
primoa64(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(primob_port)
+ m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port);
MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob)
-MACHINE_CONFIG_END
+}
ROM_START( primoa32 )
ROM_REGION( 0x14000, "maincpu", ROMREGION_ERASEFF )
diff --git a/src/mame/drivers/prof180x.cpp b/src/mame/drivers/prof180x.cpp
index 2c9f533ecd2..3391c782c4c 100644
--- a/src/mame/drivers/prof180x.cpp
+++ b/src/mame/drivers/prof180x.cpp
@@ -238,19 +238,20 @@ void prof180x_state::machine_reset()
}
}
-MACHINE_CONFIG_START(prof180x_state::prof180x)
+void prof180x_state::prof180x(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(HD64180_TAG, Z80, XTAL(9'216'000))
- MCFG_DEVICE_PROGRAM_MAP(prof180x_mem)
- MCFG_DEVICE_IO_MAP(prof180x_io)
+ z80_device &maincpu(Z80(config, HD64180_TAG, XTAL(9'216'000)));
+ maincpu.set_addrmap(AS_PROGRAM, &prof180x_state::prof180x_mem);
+ maincpu.set_addrmap(AS_IO, &prof180x_state::prof180x_io);
/* video hardware */
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_UPDATE_DRIVER(prof180x_state, screen_update)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_screen_update(FUNC(prof180x_state::screen_update));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
/* devices */
UPD765A(config, FDC9268_TAG, 8'000'000, false, true);
@@ -271,7 +272,7 @@ MACHINE_CONFIG_START(prof180x_state::prof180x)
/* software lists */
SOFTWARE_LIST(config, "flop_list").set_original("prof180");
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp
index 9d2cdef58fe..21426bd4a5e 100644
--- a/src/mame/drivers/prof80.cpp
+++ b/src/mame/drivers/prof80.cpp
@@ -447,7 +447,7 @@ void prof80_state::machine_start()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( prof80 )
+// machine_config( prof80 )
//-------------------------------------------------
void prof80_state::prof80(machine_config &config)
diff --git a/src/mame/drivers/progolf.cpp b/src/mame/drivers/progolf.cpp
index a3ff28598fa..b40a1b5018e 100644
--- a/src/mame/drivers/progolf.cpp
+++ b/src/mame/drivers/progolf.cpp
@@ -418,13 +418,14 @@ void progolf_state::progolf_palette(palette_device &palette) const
}
}
-MACHINE_CONFIG_START(progolf_state::progolf)
+void progolf_state::progolf(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", DECO_222, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */
- MCFG_DEVICE_PROGRAM_MAP(main_cpu)
+ DECO_222(config, m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu);
- MCFG_DEVICE_ADD("audiocpu", M6502, 500000)
- MCFG_DEVICE_PROGRAM_MAP(sound_cpu)
+ M6502(config, m_audiocpu, 500000);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &progolf_state::sound_cpu);
config.m_perfect_cpu_quantum = subtag("maincpu");
@@ -433,13 +434,13 @@ MACHINE_CONFIG_START(progolf_state::progolf)
soundlatch.set_separate_acknowledge(true);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(progolf_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(3072));
+ screen.set_size(256, 256);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(progolf_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_progolf);
PALETTE(config, m_palette, FUNC(progolf_state::progolf_palette), 32 * 3);
@@ -455,14 +456,15 @@ MACHINE_CONFIG_START(progolf_state::progolf)
AY8910(config, "ay1", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23);
AY8910(config, "ay2", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(progolf_state::progolfa)
+void progolf_state::progolfa(machine_config &config)
+{
progolf(config);
- config.device_remove("maincpu"); /* different encrypted cpu to progolf */
- MCFG_DEVICE_ADD("maincpu", DECO_CPU6, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */
- MCFG_DEVICE_PROGRAM_MAP(main_cpu)
-MACHINE_CONFIG_END
+ /* different encrypted cpu to progolf */
+ DECO_CPU6(config.replace(), m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu);
+}
ROM_START( progolf )
diff --git a/src/mame/drivers/proteus.cpp b/src/mame/drivers/proteus.cpp
index dc99f66cf9a..fbdd9ecf67c 100644
--- a/src/mame/drivers/proteus.cpp
+++ b/src/mame/drivers/proteus.cpp
@@ -321,14 +321,15 @@ static void proteus_floppies(device_slot_interface &device)
}
-MACHINE_CONFIG_START(proteus_state::proteus)
+void proteus_state::proteus(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(proteus_6809_mem)
+ MC6809(config, m_maincpu, 4_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &proteus_state::proteus_6809_mem);
- MCFG_DEVICE_ADD("z80", Z80, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(proteus_z80_mem)
- MCFG_DEVICE_IO_MAP(proteus_z80_io)
+ Z80(config, m_z80, 4_MHz_XTAL);
+ m_z80->set_addrmap(AS_PROGRAM, &proteus_state::proteus_z80_mem);
+ m_z80->set_addrmap(AS_IO, &proteus_state::proteus_z80_io);
INPUT_MERGER_ANY_HIGH(config, m_irqs);
m_irqs->output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE);
@@ -413,7 +414,7 @@ MACHINE_CONFIG_START(proteus_state::proteus)
/* software lists */
SOFTWARE_LIST(config, "flop_list").set_original("poly_flop").set_filter("PROTEUS");
-MACHINE_CONFIG_END
+}
ROM_START(proteus)
diff --git a/src/mame/drivers/proteus3.cpp b/src/mame/drivers/proteus3.cpp
index 5ffeabee34a..c18892408bf 100644
--- a/src/mame/drivers/proteus3.cpp
+++ b/src/mame/drivers/proteus3.cpp
@@ -380,19 +380,20 @@ void proteus3_state::machine_reset()
Machine Drivers
******************************************************************************/
-MACHINE_CONFIG_START(proteus3_state::proteus3)
+void proteus3_state::proteus3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6800, XTAL(3'579'545)) /* Divided by 4 internally */
- MCFG_DEVICE_PROGRAM_MAP(proteus3_mem)
+ M6800(config, m_maincpu, XTAL(3'579'545)); /* Divided by 4 internally */
+ m_maincpu->set_addrmap(AS_PROGRAM, &proteus3_state::proteus3_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(200))
- MCFG_SCREEN_SIZE(64*8, 16*12)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*12-1)
- MCFG_SCREEN_UPDATE_DRIVER(proteus3_state, screen_update_proteus3)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(200));
+ screen.set_size(64*8, 16*12);
+ screen.set_visarea(0, 64*8-1, 0, 16*12-1);
+ screen.set_screen_update(FUNC(proteus3_state::screen_update_proteus3));
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_proteus3);
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -442,7 +443,7 @@ MACHINE_CONFIG_START(proteus3_state::proteus3)
m_brg->out_f<13>().set(FUNC(proteus3_state::write_f13_clock));
m_brg->out_f<14>().set(FUNC(proteus3_state::write_f14_clock));
m_brg->out_f<15>().set(FUNC(proteus3_state::write_f15_clock));
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/pse.cpp b/src/mame/drivers/pse.cpp
index c6a1511ea3a..7dfb6a595b2 100644
--- a/src/mame/drivers/pse.cpp
+++ b/src/mame/drivers/pse.cpp
@@ -99,11 +99,11 @@ void pse_state::video_start()
{
}
-MACHINE_CONFIG_START(pse_state::pse)
-
+void pse_state::pse(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
- MCFG_NETLIST_SETUP(pse)
+ NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK);
+ m_maincpu->set_constructor(netlist_pse);
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -113,7 +113,7 @@ MACHINE_CONFIG_START(pse_state::pse)
m_video->set_vert_params(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL);
m_video->set_fieldcount(1);
m_video->set_threshold(0.30);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/psion.cpp b/src/mame/drivers/psion.cpp
index c6316f16a6f..ae92011d2a4 100644
--- a/src/mame/drivers/psion.cpp
+++ b/src/mame/drivers/psion.cpp
@@ -569,18 +569,19 @@ static GFXDECODE_START( gfx_psion )
GFXDECODE_END
/* basic configuration for 2 lines display */
-MACHINE_CONFIG_START(psion_state::psion_2lines)
+void psion_state::psion_2lines(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", HD63701, 980000) // should be HD6303 at 0.98MHz
+ HD63701(config, m_maincpu, 980000); // should be HD6303 at 0.98MHz
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update)
- MCFG_SCREEN_SIZE(6*16, 9*2)
- MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update));
+ screen.set_size(6*16, 9*2);
+ screen.set_visarea(0, 6*16-1, 0, 9*2-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(psion_state::psion_palette), 2);
GFXDECODE(config, "gfxdecode", "palette", gfx_psion);
@@ -603,76 +604,75 @@ MACHINE_CONFIG_START(psion_state::psion_2lines)
/* Software lists */
SOFTWARE_LIST(config, "pack_list").set_original("psion2");
-MACHINE_CONFIG_END
+}
/* basic configuration for 4 lines display */
-MACHINE_CONFIG_START(psion_state::psion_4lines)
+void psion_state::psion_4lines(machine_config &config)
+{
psion_2lines(config);
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(6*20, 9*4)
- MCFG_SCREEN_VISIBLE_AREA(0, 6*20-1, 0, 9*4-1)
+ subdevice<screen_device>("screen")->set_size(6*20, 9*4);
+ subdevice<screen_device>("screen")->set_visarea(0, 6*20-1, 0, 9*4-1);
m_lcdc->set_lcd_size(4, 20);
m_lcdc->set_pixel_update_cb(FUNC(psion_state::lz_pixel_update), this);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(psion1_state::psion1)
+void psion1_state::psion1(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psion1_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion1_state::psion1_mem);
subdevice<timer_device>("nmi_timer")->set_start_delay(attotime::from_seconds(1));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(6*16, 1*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 8*1-1)
+ subdevice<screen_device>("screen")->set_size(6*16, 1*8);
+ subdevice<screen_device>("screen")->set_visarea(0, 6*16-1, 0, 8*1-1);
m_lcdc->set_lcd_size(1, 16);
m_lcdc->set_pixel_update_cb(FUNC(psion1_state::psion1_pixel_update), this);
/* Software lists */
SOFTWARE_LIST(config.replace(), "pack_list").set_original("psion1");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(psion_state::psioncm)
+void psion_state::psioncm(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psioncm_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psioncm_mem);
+}
-MACHINE_CONFIG_START(psion_state::psionla)
+void psion_state::psionla(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psionla_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionla_mem);
+}
-MACHINE_CONFIG_START(psion_state::psionlam)
+void psion_state::psionlam(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psionlam_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionlam_mem);
+}
-MACHINE_CONFIG_START(psion_state::psionp350)
+void psion_state::psionp350(machine_config &config)
+{
psion_2lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psionp350_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionp350_mem);
NVRAM(config, "nvram3", nvram_device::DEFAULT_ALL_0); // paged RAM
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(psion_state::psionlz)
+void psion_state::psionlz(machine_config &config)
+{
psion_4lines(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(psionlz_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionlz_mem);
NVRAM(config, "nvram3", nvram_device::DEFAULT_ALL_0); // paged RAM
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/pturn.cpp b/src/mame/drivers/pturn.cpp
index 4bec5d24a90..14d50a76a92 100644
--- a/src/mame/drivers/pturn.cpp
+++ b/src/mame/drivers/pturn.cpp
@@ -517,14 +517,15 @@ void pturn_state::machine_reset()
m_nmi_sub = false;
}
-MACHINE_CONFIG_START(pturn_state::pturn)
- MCFG_DEVICE_ADD("maincpu", Z80, 12000000/3)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pturn_state, main_intgen)
+void pturn_state::pturn(machine_config &config)
+{
+ Z80(config, m_maincpu, 12000000/3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pturn_state::main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pturn_state::main_intgen));
- MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/3)
- MCFG_DEVICE_PROGRAM_MAP(sub_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(pturn_state, sub_intgen, 3*60)
+ Z80(config, m_audiocpu, 12000000/3);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &pturn_state::sub_map);
+ m_audiocpu->set_periodic_int(FUNC(pturn_state::sub_intgen), attotime::from_hz(3*60));
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<0>().set(FUNC(pturn_state::flip_w));
@@ -535,13 +536,13 @@ MACHINE_CONFIG_START(pturn_state::pturn)
mainlatch.q_out_cb<5>().set(FUNC(pturn_state::fgbank_w));
mainlatch.q_out_cb<6>().set_nop(); // toggles frequently during gameplay
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- 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(pturn_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ 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(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(pturn_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 0x100);
@@ -555,7 +556,7 @@ MACHINE_CONFIG_START(pturn_state::pturn)
AY8910(config, "ay1", 2000000).add_route(ALL_OUTPUTS, "mono", 0.25);
AY8910(config, "ay2", 2000000).add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
ROM_START( pturn )
diff --git a/src/mame/drivers/puckpkmn.cpp b/src/mame/drivers/puckpkmn.cpp
index 52680f21141..23a81639696 100644
--- a/src/mame/drivers/puckpkmn.cpp
+++ b/src/mame/drivers/puckpkmn.cpp
@@ -278,36 +278,34 @@ void md_boot_state::puckpkmna_map(address_map &map)
map(0x70001c, 0x70001d).r(FUNC(md_boot_state::puckpkmna_70001c_r));
}
-MACHINE_CONFIG_START(md_boot_state::puckpkmn)
+void md_boot_state::puckpkmn(machine_config &config)
+{
md_ntsc(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(puckpkmn_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::puckpkmn_map);
MCFG_MACHINE_START_OVERRIDE(md_boot_state, md_bootleg)
config.device_remove("genesis_snd_z80");
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker",0.25)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH));
+ oki.add_route(ALL_OUTPUTS, "lspeaker", 0.25);
+ oki.add_route(ALL_OUTPUTS, "rspeaker", 0.25);
+}
-MACHINE_CONFIG_START(md_boot_state::puckpkmna)
+void md_boot_state::puckpkmna(machine_config &config)
+{
puckpkmn(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(puckpkmna_map)
-
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::puckpkmna_map);
+}
-MACHINE_CONFIG_START(md_boot_state::jzth)
+void md_boot_state::jzth(machine_config &config)
+{
puckpkmn(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(jzth_map)
-
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::jzth_map);
+}
/* Genie's Hardware (contains no real sega parts) */
diff --git a/src/mame/drivers/punchout.cpp b/src/mame/drivers/punchout.cpp
index aeb98cd8d66..b9faf70cad0 100644
--- a/src/mame/drivers/punchout.cpp
+++ b/src/mame/drivers/punchout.cpp
@@ -622,15 +622,15 @@ MACHINE_RESET_MEMBER(punchout_state, spnchout)
}
-MACHINE_CONFIG_START(punchout_state::punchout)
-
+void punchout_state::punchout(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(punchout_map)
- MCFG_DEVICE_IO_MAP(punchout_io_map)
+ Z80(config, m_maincpu, XTAL(8'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_map);
+ m_maincpu->set_addrmap(AS_IO, &punchout_state::punchout_io_map);
- MCFG_DEVICE_ADD("audiocpu", N2A03, NTSC_APU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(punchout_sound_map)
+ N2A03(config, m_audiocpu, NTSC_APU_CLOCK);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_sound_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -659,13 +659,13 @@ MACHINE_CONFIG_START(punchout_state::punchout)
top.screen_vblank().set(FUNC(punchout_state::vblank_irq));
top.screen_vblank().append_inputline(m_audiocpu, INPUT_LINE_NMI);
- MCFG_SCREEN_ADD("bottom", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- 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(punchout_state, screen_update_punchout_bottom)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &bottom(SCREEN(config, "bottom", SCREEN_TYPE_RASTER));
+ bottom.set_refresh_hz(60);
+ bottom.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ bottom.set_size(32*8, 32*8);
+ bottom.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ bottom.set_screen_update(FUNC(punchout_state::screen_update_punchout_bottom));
+ bottom.set_palette(m_palette);
/* sound hardware */
// FIXME: this makes no sense - "lspeaker" on left and "mono" on right, with nothing routed to "mono"
@@ -675,43 +675,41 @@ MACHINE_CONFIG_START(punchout_state::punchout)
GENERIC_LATCH_8(config, "soundlatch");
GENERIC_LATCH_8(config, "soundlatch2");
- MCFG_DEVICE_ADD("vlm", VLM5030, N2A03_NTSC_XTAL/6)
- MCFG_DEVICE_ADDRESS_MAP(0, punchout_vlm_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
-MACHINE_CONFIG_END
+ VLM5030(config, m_vlm, N2A03_NTSC_XTAL/6);
+ m_vlm->set_addrmap(0, &punchout_state::punchout_vlm_map);
+ m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 0.50);
+}
-MACHINE_CONFIG_START(punchout_state::spnchout)
+void punchout_state::spnchout(machine_config &config)
+{
punchout(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(spnchout_io_map)
+ m_maincpu->set_addrmap(AS_IO, &punchout_state::spnchout_io_map);
RP5C01(config, m_rtc, 0); // OSCIN -> Vcc
m_rtc->remove_battery();
RP5H01(config, m_rp5h01, 0);
MCFG_MACHINE_RESET_OVERRIDE(punchout_state, spnchout)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(punchout_state::armwrest)
+void punchout_state::armwrest(machine_config &config)
+{
punchout(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(armwrest_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &punchout_state::armwrest_map);
/* video hardware */
m_gfxdecode->set_info(gfx_armwrest);
MCFG_VIDEO_START_OVERRIDE(punchout_state, armwrest)
- MCFG_SCREEN_MODIFY("top")
- MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_top)
- MCFG_SCREEN_MODIFY("bottom")
- MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_bottom)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("top")->set_screen_update(FUNC(punchout_state::screen_update_armwrest_top));
+ subdevice<screen_device>("bottom")->set_screen_update(FUNC(punchout_state::screen_update_armwrest_bottom));
+}
diff --git a/src/mame/drivers/pv1000.cpp b/src/mame/drivers/pv1000.cpp
index 7676a9120b0..abc184e8645 100644
--- a/src/mame/drivers/pv1000.cpp
+++ b/src/mame/drivers/pv1000.cpp
@@ -177,12 +177,12 @@ private:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- void pv1000(address_map &map);
+ void pv1000_mem(address_map &map);
void pv1000_io(address_map &map);
};
-void pv1000_state::pv1000(address_map &map)
+void pv1000_state::pv1000_mem(address_map &map)
{
//AM_RANGE(0x0000, 0x7fff) // mapped by the cartslot
map(0xb800, 0xbbff).ram().share("videoram");
@@ -441,11 +441,9 @@ GFXDECODE_END
MACHINE_CONFIG_START(pv1000_state::pv1000)
-
- MCFG_DEVICE_ADD( "maincpu", Z80, 17897725/5 )
- MCFG_DEVICE_PROGRAM_MAP( pv1000 )
- MCFG_DEVICE_IO_MAP( pv1000_io )
-
+ Z80(config, m_maincpu, 17897725/5);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pv1000_state::pv1000_mem);
+ m_maincpu->set_addrmap(AS_IO, &pv1000_state::pv1000_io);
/* D65010G031 - Video & sound chip */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/pv2000.cpp b/src/mame/drivers/pv2000.cpp
index 21824601056..d0a0b8bc410 100644
--- a/src/mame/drivers/pv2000.cpp
+++ b/src/mame/drivers/pv2000.cpp
@@ -387,11 +387,10 @@ DEVICE_IMAGE_LOAD_MEMBER( pv2000_state, pv2000_cart )
/* Machine Drivers */
MACHINE_CONFIG_START(pv2000_state::pv2000)
-
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(7'159'090)/2) // 3.579545 MHz
- MCFG_DEVICE_PROGRAM_MAP(pv2000_map)
- MCFG_DEVICE_IO_MAP(pv2000_io_map)
+ Z80(config, m_maincpu, XTAL(7'159'090)/2); // 3.579545 MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &pv2000_state::pv2000_map);
+ m_maincpu->set_addrmap(AS_IO, &pv2000_state::pv2000_io_map);
// video hardware
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
@@ -403,8 +402,7 @@ MACHINE_CONFIG_START(pv2000_state::pv2000)
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("sn76489a", SN76489A, XTAL(7'159'090)/2) /* 3.579545 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
+ SN76489A(config, "sn76489a", XTAL(7'159'090)/2).add_route(ALL_OUTPUTS, "mono", 1.00); /* 3.579545 MHz */
WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.25);
diff --git a/src/mame/drivers/pv9234.cpp b/src/mame/drivers/pv9234.cpp
index a3ff1a54d85..39cb02f1cac 100644
--- a/src/mame/drivers/pv9234.cpp
+++ b/src/mame/drivers/pv9234.cpp
@@ -149,23 +149,23 @@ uint32_t pv9234_state::screen_update_pv9234(screen_device &screen, bitmap_ind16
return 0;
}
-MACHINE_CONFIG_START(pv9234_state::pv9234)
+void pv9234_state::pv9234(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", ARM7, 4915000) //probably a more powerful clone.
- MCFG_DEVICE_PROGRAM_MAP(pv9234_map)
-
+ ARM7(config, m_maincpu, 4915000); //probably a more powerful clone.
+ m_maincpu->set_addrmap(AS_PROGRAM, &pv9234_state::pv9234_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_DRIVER(pv9234_state, screen_update_pv9234)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
+ screen.set_screen_update(FUNC(pv9234_state::screen_update_pv9234));
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( pv9234 )
diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp
index f77c46c2ec5..2c9d76c2c62 100644
--- a/src/mame/drivers/pwrview.cpp
+++ b/src/mame/drivers/pwrview.cpp
@@ -404,15 +404,16 @@ static void pwrview_floppies(device_slot_interface &device)
device.option_add("525dd", FLOPPY_525_DD);
}
-MACHINE_CONFIG_START(pwrview_state::pwrview)
- MCFG_DEVICE_ADD("maincpu", I80186, XTAL(16'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pwrview_map)
- MCFG_DEVICE_OPCODES_MAP(pwrview_fetch_map)
- MCFG_DEVICE_IO_MAP(pwrview_io)
+void pwrview_state::pwrview(machine_config &config)
+{
+ I80186(config, m_maincpu, XTAL(16'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pwrview_state::pwrview_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &pwrview_state::pwrview_fetch_map);
+ m_maincpu->set_addrmap(AS_IO, &pwrview_state::pwrview_io);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(64'000'000)/8, 480, 0, 384, 1040, 0, 960) // clock unknown
- MCFG_SCREEN_UPDATE_DEVICE("crtc", hd6845_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(64'000'000)/8, 480, 0, 384, 1040, 0, 960); // clock unknown
+ screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update));
PIT8253(config, m_pit, 0);
m_pit->set_clk<0>(XTAL(16'000'000)/16); // clocks unknown, fix above when found
@@ -435,7 +436,7 @@ MACHINE_CONFIG_START(pwrview_state::pwrview)
crtc.set_update_row_callback(FUNC(pwrview_state::update_row), this);
ADDRESS_MAP_BANK(config, "bios_bank").set_map(&pwrview_state::bios_bank).set_options(ENDIANNESS_LITTLE, 16, 17, 0x8000);
-MACHINE_CONFIG_END
+}
ROM_START(pwrview)
ROM_REGION(0x8000, "bios", 0)
diff --git a/src/mame/drivers/px4.cpp b/src/mame/drivers/px4.cpp
index 8a2e6c879ef..66f62a566cb 100644
--- a/src/mame/drivers/px4.cpp
+++ b/src/mame/drivers/px4.cpp
@@ -1485,19 +1485,20 @@ void px4p_state::px4p_palette(palette_device &palette) const
// MACHINE DRIVERS
//**************************************************************************
-MACHINE_CONFIG_START(px4_state::px4)
+void px4_state::px4(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(7'372'800) / 2) // uPD70008
- MCFG_DEVICE_PROGRAM_MAP(px4_mem)
- MCFG_DEVICE_IO_MAP(px4_io)
+ Z80(config, m_z80, XTAL(7'372'800) / 2); // uPD70008
+ m_z80->set_addrmap(AS_PROGRAM, &px4_state::px4_mem);
+ m_z80->set_addrmap(AS_IO, &px4_state::px4_io);
// video hardware
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(72)
- MCFG_SCREEN_SIZE(240, 64)
- MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63)
- MCFG_SCREEN_UPDATE_DRIVER(px4_state, screen_update_px4)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(72);
+ screen.set_size(240, 64);
+ screen.set_visarea(0, 239, 0, 63);
+ screen.set_screen_update(FUNC(px4_state::screen_update_px4));
+ screen.set_palette("palette");
config.set_default_layout(layout_px4);
@@ -1541,25 +1542,25 @@ MACHINE_CONFIG_START(px4_state::px4)
m_rs232->cts_handler().set(FUNC(px4_state::rs232_cts_w));
// rom capsules
- MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px4_cart")
- MCFG_GENERIC_CARTSLOT_ADD("capsule2", generic_plain_slot, "px4_cart")
+ GENERIC_CARTSLOT(config, m_caps1, generic_plain_slot, "px4_cart");
+ GENERIC_CARTSLOT(config, m_caps2, generic_plain_slot, "px4_cart");
// software list
SOFTWARE_LIST(config, "cart_list").set_original("px4_cart");
SOFTWARE_LIST(config, "epson_cpm_list").set_original("epson_cpm");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(px4p_state::px4p)
+void px4p_state::px4p(machine_config &config)
+{
px4(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(px4p_io)
+ m_z80->set_addrmap(AS_IO, &px4p_state::px4p_io);
NVRAM(config, "rdnvram", nvram_device::DEFAULT_ALL_0);
subdevice<palette_device>("palette")->set_init(FUNC(px4p_state::px4p_palette));
- MCFG_GENERIC_CARTSLOT_ADD("ramdisk_socket", generic_plain_slot, "px4_cart")
-MACHINE_CONFIG_END
+ GENERIC_CARTSLOT(config, m_rdsocket, generic_plain_slot, "px4_cart");
+}
//**************************************************************************
diff --git a/src/mame/drivers/px8.cpp b/src/mame/drivers/px8.cpp
index 581003b512d..73e4213b248 100644
--- a/src/mame/drivers/px8.cpp
+++ b/src/mame/drivers/px8.cpp
@@ -737,31 +737,32 @@ void px8_state::machine_reset()
MACHINE DRIVERS
***************************************************************************/
-MACHINE_CONFIG_START(px8_state::px8)
+void px8_state::px8(machine_config &config)
+{
/* main cpu (uPD70008) */
- MCFG_DEVICE_ADD(UPD70008_TAG, Z80, XTAL_CR1 / 4) /* 2.45 MHz */
- MCFG_DEVICE_PROGRAM_MAP(px8_mem)
- MCFG_DEVICE_IO_MAP(px8_io)
+ Z80(config, m_maincpu, XTAL_CR1 / 4); /* 2.45 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &px8_state::px8_mem);
+ m_maincpu->set_addrmap(AS_IO, &px8_state::px8_io);
/* slave cpu (HD6303) */
- MCFG_DEVICE_ADD(HD6303_TAG, M6803, XTAL_CR1 / 4) /* 614 kHz */
- MCFG_DEVICE_PROGRAM_MAP(px8_slave_mem)
- MCFG_DEVICE_DISABLE()
+ m6803_cpu_device &slave(M6803(config, HD6303_TAG, XTAL_CR1 / 4)); /* 614 kHz */
+ slave.set_addrmap(AS_PROGRAM, &px8_state::px8_slave_mem);
+ slave.set_disable();
/* sub CPU (uPD7508) */
-// MCFG_DEVICE_ADD(UPD7508_TAG, UPD7508, 200000) /* 200 kHz */
-// MCFG_DEVICE_IO_MAP(px8_sub_io)
-// MCFG_DEVICE_DISABLE()
+// upd7508_device &sub(UPD7508(config, UPD7508_TAG, 200000)); /* 200 kHz */
+// sub.set_addrmap(AS_IO, &px8_state::px8_sub_io);
+// sub.set_disable();
/* video hardware */
config.set_default_layout(layout_px8);
- MCFG_SCREEN_ADD(SCREEN_TAG, LCD)
- MCFG_SCREEN_REFRESH_RATE(72)
- MCFG_SCREEN_UPDATE_DRIVER(px8_state, screen_update)
- MCFG_SCREEN_SIZE(480, 64)
- MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 63)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(72);
+ screen.set_screen_update(FUNC(px8_state::screen_update));
+ screen.set_size(480, 64);
+ screen.set_visarea(0, 479, 0, 63);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_px8);
PALETTE(config, "palette", FUNC(px8_state::px8_palette), 2);
@@ -771,14 +772,12 @@ MACHINE_CONFIG_START(px8_state::px8)
WAVE(config, "wave", m_cassette).add_route(0, "mono", 0.25);
/* cartridge */
- MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px8_cart")
- MCFG_GENERIC_EXTENSIONS("bin,rom")
+ GENERIC_CARTSLOT(config, "capsule1", generic_plain_slot, "px8_cart", "bin,rom");
- MCFG_GENERIC_CARTSLOT_ADD("capsule2", generic_plain_slot, "px8_cart")
- MCFG_GENERIC_EXTENSIONS("bin,rom")
+ GENERIC_CARTSLOT(config, "capsule2", generic_plain_slot, "px8_cart", "bin,rom");
/* devices */
- MCFG_DEVICE_ADD(I8251_TAG, I8251, 0)
+ I8251(config, I8251_TAG, 0);
CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED);
@@ -789,7 +788,7 @@ MACHINE_CONFIG_START(px8_state::px8)
// software
SOFTWARE_LIST(config, "cart_list").set_original("px8_cart");
SOFTWARE_LIST(config, "epson_cpm_list").set_original("epson_cpm");
-MACHINE_CONFIG_END
+}
/***************************************************************************
ROMS
diff --git a/src/mame/drivers/pzletime.cpp b/src/mame/drivers/pzletime.cpp
index 53a3015f514..0366ad0a56d 100644
--- a/src/mame/drivers/pzletime.cpp
+++ b/src/mame/drivers/pzletime.cpp
@@ -334,21 +334,21 @@ void pzletime_state::machine_reset()
m_ticket = 0;
}
-MACHINE_CONFIG_START(pzletime_state::pzletime)
-
+void pzletime_state::pzletime(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M68000,10000000)
- MCFG_DEVICE_PROGRAM_MAP(pzletime_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pzletime_state, irq4_line_hold)
+ M68000(config, m_maincpu, 10000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pzletime_state::pzletime_map);
+ m_maincpu->set_vblank_int("screen", FUNC(pzletime_state::irq4_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(pzletime_state, screen_update_pzletime)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(64*8, 32*8);
+ m_screen->set_visarea(0*8, 48*8-1, 0*8, 28*8-1);
+ m_screen->set_screen_update(FUNC(pzletime_state::screen_update_pzletime));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_pzletime);
PALETTE(config, m_palette, FUNC(pzletime_state::pzletime_palette));
@@ -360,7 +360,7 @@ MACHINE_CONFIG_START(pzletime_state::pzletime)
SPEAKER(config, "mono").front_center();
OKIM6295(config, m_oki, 937500, okim6295_device::PIN7_HIGH); //freq & pin7 taken from stlforce
m_oki->add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/ql.cpp b/src/mame/drivers/ql.cpp
index 2a822268a68..d7c00923d23 100644
--- a/src/mame/drivers/ql.cpp
+++ b/src/mame/drivers/ql.cpp
@@ -895,13 +895,14 @@ void ql_state::machine_reset()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( ql )
+// machine_config( ql )
//-------------------------------------------------
-MACHINE_CONFIG_START(ql_state::ql)
+void ql_state::ql(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(m_maincpu, M68008, X1/2)
- MCFG_DEVICE_PROGRAM_MAP(ql_mem)
+ M68008(config, m_maincpu, X1/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ql_state::ql_mem);
I8749(config, m_ipc, X4);
m_ipc->set_addrmap(AS_IO, &ql_state::ipc_io);
@@ -912,12 +913,12 @@ MACHINE_CONFIG_START(ql_state::ql)
m_ipc->bus_in_cb().set(FUNC(ql_state::ipc_bus_r));
// video hardware
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_REFRESH_RATE(50.08)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
- MCFG_SCREEN_UPDATE_DEVICE(ZX8301_TAG, zx8301_device, screen_update)
- MCFG_SCREEN_SIZE(960, 312)
- MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50.08);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
+ screen.set_screen_update(ZX8301_TAG, FUNC(zx8301_device::screen_update));
+ screen.set_size(960, 312);
+ screen.set_visarea(0, 512-1, 0, 256-1);
// sound hardware
SPEAKER(config, "mono").front_center();
@@ -971,25 +972,26 @@ MACHINE_CONFIG_START(ql_state::ql)
// internal ram
RAM(config, m_ram).set_default_size("128K");
-MACHINE_CONFIG_END
+}
//-------------------------------------------------
-// MACHINE_CONFIG( ql_ntsc )
+// machine_config( ql_ntsc )
//-------------------------------------------------
-MACHINE_CONFIG_START(ql_state::ql_ntsc)
+void ql_state::ql_ntsc(machine_config &config)
+{
ql(config);
// video hardware
- MCFG_SCREEN_MODIFY(SCREEN_TAG)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(960, 262)
- MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>(SCREEN_TAG));
+ screen.set_refresh_hz(60);
+ screen.set_size(960, 262);
+ screen.set_visarea(0, 512-1, 0, 256-1);
+ }
//-------------------------------------------------
-// MACHINE_CONFIG( opd )
+// machine_config( opd )
//-------------------------------------------------
void ql_state::opd(machine_config &config)
@@ -1002,7 +1004,7 @@ void ql_state::opd(machine_config &config)
/*
//-------------------------------------------------
-// MACHINE_CONFIG( megaopd )
+// machine_config( megaopd )
//-------------------------------------------------
void ql_state::megaopd(machine_config &config)
diff --git a/src/mame/drivers/quakeat.cpp b/src/mame/drivers/quakeat.cpp
index e7738bcf74d..5b575462c74 100644
--- a/src/mame/drivers/quakeat.cpp
+++ b/src/mame/drivers/quakeat.cpp
@@ -124,27 +124,27 @@ void quakeat_state::machine_start()
}
/*************************************************************/
-MACHINE_CONFIG_START(quakeat_state::quake)
+void quakeat_state::quake(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", PENTIUM2, 233000000) /* Pentium II, 233MHz */
- MCFG_DEVICE_PROGRAM_MAP(quake_map)
- MCFG_DEVICE_IO_MAP(quake_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ PENTIUM2(config, m_maincpu, 233000000); /* Pentium II, 233MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &quakeat_state::quake_map);
+ m_maincpu->set_addrmap(AS_IO, &quakeat_state::quake_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
pcat_common(config);
/* 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, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(quakeat_state, screen_update_quake)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 0x100)
-
-MACHINE_CONFIG_END
+ 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, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(quakeat_state::screen_update_quake));
+ screen.set_palette("palette");
+
+ PALETTE(config, "palette").set_entries(0x100);
+}
ROM_START(quake)
diff --git a/src/mame/drivers/queen.cpp b/src/mame/drivers/queen.cpp
index ff1e9cf2af0..2d4e875db57 100644
--- a/src/mame/drivers/queen.cpp
+++ b/src/mame/drivers/queen.cpp
@@ -283,10 +283,10 @@ void queen_state::machine_reset()
MACHINE_CONFIG_START(queen_state::queen)
- MCFG_DEVICE_ADD("maincpu", PENTIUM3, 533000000/16) // Celeron or Pentium 3, 533 Mhz
- MCFG_DEVICE_PROGRAM_MAP(queen_map)
- MCFG_DEVICE_IO_MAP(queen_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb)
+ PENTIUM3(config, m_maincpu, 533000000/16); // Celeron or Pentium 3, 533 Mhz
+ m_maincpu->set_addrmap(AS_PROGRAM, &queen_state::queen_map);
+ m_maincpu->set_addrmap(AS_IO, &queen_state::queen_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
pcat_common(config);
diff --git a/src/mame/drivers/quizdna.cpp b/src/mame/drivers/quizdna.cpp
index 18ed31d6aae..f4ed0324cc1 100644
--- a/src/mame/drivers/quizdna.cpp
+++ b/src/mame/drivers/quizdna.cpp
@@ -440,25 +440,25 @@ void quizdna_state::machine_start()
}
-MACHINE_CONFIG_START(quizdna_state::quizdna)
-
+void quizdna_state::quizdna(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MCLK/2) /* 8.000 MHz */
- MCFG_DEVICE_PROGRAM_MAP(quizdna_map)
- MCFG_DEVICE_IO_MAP(quizdna_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizdna_state, irq0_line_hold)
+ Z80(config, m_maincpu, MCLK/2); /* 8.000 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::quizdna_map);
+ m_maincpu->set_addrmap(AS_IO, &quizdna_state::quizdna_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(quizdna_state::irq0_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(quizdna_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(8*8, 56*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(quizdna_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_quizdna);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
/* sound hardware */
@@ -472,30 +472,27 @@ MACHINE_CONFIG_START(quizdna_state::quizdna)
ymsnd.add_route(2, "mono", 0.10);
ymsnd.add_route(3, "mono", 0.40);
- MCFG_DEVICE_ADD("oki", OKIM6295, (MCLK/1024)*132, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", (MCLK/1024)*132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); // clock frequency & pin 7 not verified
+}
-MACHINE_CONFIG_START(quizdna_state::gakupara)
+void quizdna_state::gakupara(machine_config &config)
+{
quizdna(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(gakupara_io_map)
-
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &quizdna_state::gakupara_io_map);
+}
-MACHINE_CONFIG_START(quizdna_state::gekiretu)
+void quizdna_state::gekiretu(machine_config &config)
+{
quizdna(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(gekiretu_map)
- MCFG_DEVICE_IO_MAP(gekiretu_io_map)
-
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::gekiretu_map);
+ m_maincpu->set_addrmap(AS_IO, &quizdna_state::gekiretu_io_map);
+}
/****************************************************************************/
diff --git a/src/mame/drivers/quizo.cpp b/src/mame/drivers/quizo.cpp
index 25843af8f95..4ff533680ee 100644
--- a/src/mame/drivers/quizo.cpp
+++ b/src/mame/drivers/quizo.cpp
@@ -217,29 +217,29 @@ static INPUT_PORTS_START( quizo )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
-MACHINE_CONFIG_START(quizo_state::quizo)
+void quizo_state::quizo(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,XTAL1/2)
- MCFG_DEVICE_PROGRAM_MAP(memmap)
- MCFG_DEVICE_IO_MAP(portmap)
-
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizo_state, irq0_line_hold)
+ Z80(config, m_maincpu, XTAL1/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &quizo_state::memmap);
+ m_maincpu->set_addrmap(AS_IO, &quizo_state::portmap);
+ m_maincpu->set_vblank_int("screen", FUNC(quizo_state::irq0_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(320, 200)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1)
- MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ 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(320, 200);
+ screen.set_visarea(0*8, 320-1, 0*8, 200-1);
+ screen.set_screen_update(FUNC(quizo_state::screen_update));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(quizo_state::quizo_palette), 16);
/* sound hardware */
SPEAKER(config, "mono").front_center();
AY8910(config, "aysnd", XTAL2 / 16).add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( quizo )
diff --git a/src/mame/drivers/quizpani.cpp b/src/mame/drivers/quizpani.cpp
index 2e694e4cfeb..d9431d663ff 100644
--- a/src/mame/drivers/quizpani.cpp
+++ b/src/mame/drivers/quizpani.cpp
@@ -195,32 +195,31 @@ static GFXDECODE_START( gfx_quizpani )
GFXDECODE_END
-MACHINE_CONFIG_START(quizpani_state::quizpani)
- MCFG_DEVICE_ADD("maincpu", M68000, 10000000)
- MCFG_DEVICE_PROGRAM_MAP(quizpani_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizpani_state, irq4_line_hold)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(quizpani_state, irq1_line_hold, 164) // music tempo
+void quizpani_state::quizpani(machine_config &config)
+{
+ M68000(config, m_maincpu, 10000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &quizpani_state::quizpani_map);
+ m_maincpu->set_vblank_int("screen", FUNC(quizpani_state::irq4_line_hold));
+ m_maincpu->set_periodic_int(FUNC(quizpani_state::irq1_line_hold), attotime::from_hz(164)); // music tempo
GFXDECODE(config, m_gfxdecode, "palette", gfx_quizpani);
PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 0x200);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(quizpani_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
-
+ 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, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 0*8, 28*8-1);
+ screen.set_screen_update(FUNC(quizpani_state::screen_update));
+ screen.set_palette("palette");
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 16000000/4, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ OKIM6295(config, "oki", 16000000/4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0);
nmk112_device &nmk112(NMK112(config, "nmk112", 0));
nmk112.set_rom0_tag("oki");
-MACHINE_CONFIG_END
+}
ROM_START( quizpani )
ROM_REGION( 0x340000, "maincpu", 0 ) /* 68000 Code */
diff --git a/src/mame/drivers/qvt70.cpp b/src/mame/drivers/qvt70.cpp
index 28843e0e806..1af2ab9274d 100644
--- a/src/mame/drivers/qvt70.cpp
+++ b/src/mame/drivers/qvt70.cpp
@@ -32,10 +32,11 @@ void qvt70_state::mem_map(address_map &map)
static INPUT_PORTS_START( qvt70 )
INPUT_PORTS_END
-MACHINE_CONFIG_START(qvt70_state::qvt70)
- MCFG_DEVICE_ADD("maincpu", Z80, 2'000'000)
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
-MACHINE_CONFIG_END
+void qvt70_state::qvt70(machine_config &config)
+{
+ Z80(config, m_maincpu, 2'000'000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &qvt70_state::mem_map);
+}
/**************************************************************************************************************
diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp
index 009917ce16c..03df6686f96 100644
--- a/src/mame/drivers/qx10.cpp
+++ b/src/mame/drivers/qx10.cpp
@@ -723,10 +723,10 @@ static void keyboard(device_slot_interface &device)
MACHINE_CONFIG_START(qx10_state::qx10)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, MAIN_CLK / 4)
- MCFG_DEVICE_PROGRAM_MAP(qx10_mem)
- MCFG_DEVICE_IO_MAP(qx10_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
+ Z80(config, m_maincpu, MAIN_CLK / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &qx10_state::qx10_mem);
+ m_maincpu->set_addrmap(AS_IO, &qx10_state::qx10_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/drivers/r2dtank.cpp b/src/mame/drivers/r2dtank.cpp
index 49463a87a4f..dff5a7cfa5a 100644
--- a/src/mame/drivers/r2dtank.cpp
+++ b/src/mame/drivers/r2dtank.cpp
@@ -445,19 +445,20 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(r2dtank_state::r2dtank)
- MCFG_DEVICE_ADD("maincpu", MC6809, MAIN_CPU_MASTER_CLOCK / 4) // divider guessed
- MCFG_DEVICE_PROGRAM_MAP(r2dtank_main_map)
+void r2dtank_state::r2dtank(machine_config &config)
+{
+ MC6809(config, m_maincpu, MAIN_CPU_MASTER_CLOCK / 4); // divider guessed
+ m_maincpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_main_map);
- MCFG_DEVICE_ADD("audiocpu", M6802, 3.579545_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(r2dtank_audio_map)
+ M6802(config, m_audiocpu, 3.579545_MHz_XTAL);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_audio_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 360, 0, 256, 276, 0, 224)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(PIXEL_CLOCK, 360, 0, 256, 276, 0, 224);
+ screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update));
PALETTE(config, m_palette, palette_device::BGR_3BIT);
@@ -507,8 +508,7 @@ MACHINE_CONFIG_START(r2dtank_state::r2dtank)
m_ay2->port_a_read_callback().set_ioport("IN1");
m_ay2->port_b_read_callback().set_ioport("DSWA");
m_ay2->add_route(ALL_OUTPUTS, "mono", 0.25);
-
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/rad_eu3a05.cpp b/src/mame/drivers/rad_eu3a05.cpp
index a89910c246a..4c9c33be6b3 100644
--- a/src/mame/drivers/rad_eu3a05.cpp
+++ b/src/mame/drivers/rad_eu3a05.cpp
@@ -1146,25 +1146,25 @@ INTERRUPT_GEN_MEMBER(radica_eu3a05_state::interrupt)
*/
}
-MACHINE_CONFIG_START(radica_eu3a05_state::radicasi)
-
+void radica_eu3a05_state::radicasi(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M6502,XTAL(21'281'370)/2) // Tetris has a XTAL(21'281'370), not confirmed on Space Invaders, actual CPU clock unknown.
- MCFG_DEVICE_PROGRAM_MAP(radicasi_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", radica_eu3a05_state, interrupt)
+ M6502(config, m_maincpu, XTAL(21'281'370)/2); // Tetris has a XTAL(21'281'370), not confirmed on Space Invaders, actual CPU clock unknown.
+ m_maincpu->set_addrmap(AS_PROGRAM, &radica_eu3a05_state::radicasi_map);
+ m_maincpu->set_vblank_int("screen", FUNC(radica_eu3a05_state::interrupt));
ADDRESS_MAP_BANK(config, "bank").set_map(&radica_eu3a05_state::radicasi_bank_map).set_options(ENDIANNESS_LITTLE, 8, 24, 0x8000);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_UPDATE_DRIVER(radica_eu3a05_state, screen_update)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_screen_update(FUNC(radica_eu3a05_state::screen_update));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
+ screen.set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 256)
+ PALETTE(config, m_palette).set_entries(256);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_radicasi_fake);
@@ -1176,7 +1176,7 @@ MACHINE_CONFIG_START(radica_eu3a05_state::radicasi)
radica6502_sound_device &sound(RADICA6502_SOUND(config, "6ch_sound", 8000));
sound.space_read_callback().set(FUNC(radica_eu3a05_state::read_full_space));
sound.add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START( rad_tetr )
diff --git a/src/mame/drivers/rad_eu3a14.cpp b/src/mame/drivers/rad_eu3a14.cpp
index fed73d6c6fa..7b0c664f2e4 100644
--- a/src/mame/drivers/rad_eu3a14.cpp
+++ b/src/mame/drivers/rad_eu3a14.cpp
@@ -1366,49 +1366,49 @@ GFXDECODE_END
-MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14)
+void radica_eu3a14_state::radica_eu3a14(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",M6502,XTAL(21'477'272)/2) // marked as 21'477'270
- MCFG_DEVICE_PROGRAM_MAP(radica_eu3a14_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", radica_eu3a14_state, interrupt)
+ M6502(config, m_maincpu, XTAL(21'477'272)/2); // marked as 21'477'270
+ m_maincpu->set_addrmap(AS_PROGRAM, &radica_eu3a14_state::radica_eu3a14_map);
+ m_maincpu->set_vblank_int("screen", FUNC(radica_eu3a14_state::interrupt));
ADDRESS_MAP_BANK(config, "bank").set_map(&radica_eu3a14_state::bank_map).set_options(ENDIANNESS_LITTLE, 8, 24, 0x8000);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_helper);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_UPDATE_DRIVER(radica_eu3a14_state, screen_update)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
-
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
+ screen.set_screen_update(FUNC(radica_eu3a14_state::screen_update));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1);
+ screen.set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 512)
+ PALETTE(config, m_palette).set_entries(512);
/* sound hardware */
SPEAKER(config, "mono").front_center();
radica6502_sound_device &sound(RADICA6502_SOUND(config, "6ch_sound", 8000));
sound.space_read_callback().set(FUNC(radica_eu3a14_state::read_full_space));
sound.add_route(ALL_OUTPUTS, "mono", 1.0);
+}
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14_adc)
+void radica_eu3a14_state::radica_eu3a14_adc(machine_config &config)
+{
radica_eu3a14(config);
TIMER(config, "scantimer").configure_scanline(FUNC(radica_eu3a14_state::scanline_cb), "screen", 0, 1);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14p) // TODO, clocks differ too, what are they on PAL?
+void radica_eu3a14_state::radica_eu3a14p(machine_config &config) // TODO, clocks differ too, what are they on PAL?
+{
radica_eu3a14(config);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_REFRESH_RATE(50)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_refresh_hz(50);
+}
void radica_eu3a14_state::init_rad_gtg()
diff --git a/src/mame/drivers/radio86.cpp b/src/mame/drivers/radio86.cpp
index 005c981a7a5..c66612c34f2 100644
--- a/src/mame/drivers/radio86.cpp
+++ b/src/mame/drivers/radio86.cpp
@@ -517,81 +517,80 @@ void radio86_state::kr03(machine_config &config)
m_ppi8255_1->out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2));
}
-MACHINE_CONFIG_START(radio86_state::radio16)
+void radio86_state::radio16(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(radio86_16_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86_16_mem);
+}
-MACHINE_CONFIG_START(radio86_state::radiorom)
+void radio86_state::radiorom(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(radio86rom_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86rom_mem);
I8255(config, m_ppi8255_2);
m_ppi8255_2->in_pa_callback().set(FUNC(radio86_state::radio86rom_romdisk_porta_r));
m_ppi8255_2->out_pb_callback().set(FUNC(radio86_state::radio86_romdisk_portb_w));
m_ppi8255_2->out_pc_callback().set(FUNC(radio86_state::radio86_romdisk_portc_w));
- MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "radio86_cart")
- MCFG_GENERIC_EXTENSIONS("bin,rom")
+ GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "radio86_cart", "bin,rom");
SOFTWARE_LIST(config, "cart_list").set_original("radio86_cart");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radio86_state::radioram)
+void radio86_state::radioram(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(radio86ram_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86ram_mem);
I8255(config, m_ppi8255_2);
m_ppi8255_2->in_pa_callback().set(FUNC(radio86_state::radio86ram_romdisk_porta_r));
m_ppi8255_2->out_pb_callback().set(FUNC(radio86_state::radio86_romdisk_portb_w));
m_ppi8255_2->out_pc_callback().set(FUNC(radio86_state::radio86_romdisk_portc_w));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radio86_state::rk7007)
+void radio86_state::rk7007(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(rk7007_io)
+ m_maincpu->set_addrmap(AS_IO, &radio86_state::rk7007_io);
i8255_device &ms7007(I8255(config, "ms7007"));
ms7007.out_pa_callback().set(FUNC(radio86_state::radio86_8255_porta_w2));
ms7007.in_pb_callback().set(FUNC(radio86_state::radio86_8255_portb_r2));
ms7007.in_pc_callback().set(FUNC(radio86_state::rk7007_8255_portc_r));
ms7007.out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radio86_state::rk700716)
+void radio86_state::rk700716(machine_config &config)
+{
radio16(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(rk7007_io)
+ m_maincpu->set_addrmap(AS_IO, &radio86_state::rk7007_io);
i8255_device &ms7007(I8255(config, "ms7007"));
ms7007.out_pa_callback().set(FUNC(radio86_state::radio86_8255_porta_w2));
ms7007.in_pb_callback().set(FUNC(radio86_state::radio86_8255_portb_r2));
ms7007.in_pc_callback().set(FUNC(radio86_state::rk7007_8255_portc_r));
ms7007.out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(radio86_state::mikron2)
+void radio86_state::mikron2(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mikron2_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::mikron2_mem);
+}
-MACHINE_CONFIG_START(radio86_state::impuls03)
+void radio86_state::impuls03(machine_config &config)
+{
radio86(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(impuls03_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::impuls03_mem);
+}
/* ROM definition */
ROM_START( radio86 )
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index 9a42b6f3c1f..f4757a0a466 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -3197,25 +3197,25 @@ void rainbow_state::upd7220_map(address_map &map)
map(0x00000, 0x3ffff).rw(FUNC(rainbow_state::vram_r), FUNC(rainbow_state::vram_w)).share("vram");
}
-MACHINE_CONFIG_START(rainbow_state::rainbow)
+void rainbow_state::rainbow(machine_config &config)
+{
config.set_default_layout(layout_rainbow);
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8088, 24.0734_MHz_XTAL / 5) // approximately 4.815 MHz
- MCFG_DEVICE_PROGRAM_MAP(rainbow8088_map)
- MCFG_DEVICE_IO_MAP(rainbow8088_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(rainbow_state, irq_callback)
+ I8088(config, m_i8088, 24.0734_MHz_XTAL / 5); // approximately 4.815 MHz
+ m_i8088->set_addrmap(AS_PROGRAM, &rainbow_state::rainbow8088_map);
+ m_i8088->set_addrmap(AS_IO, &rainbow_state::rainbow8088_io);
+ m_i8088->set_irq_acknowledge_callback(FUNC(rainbow_state::irq_callback));
- MCFG_DEVICE_ADD("subcpu", Z80, 24.0734_MHz_XTAL / 6)
- MCFG_DEVICE_PROGRAM_MAP(rainbowz80_mem)
- MCFG_DEVICE_IO_MAP(rainbowz80_io)
+ Z80(config, m_z80, 24.0734_MHz_XTAL / 6);
+ m_z80->set_addrmap(AS_PROGRAM, &rainbow_state::rainbowz80_mem);
+ m_z80->set_addrmap(AS_IO, &rainbow_state::rainbowz80_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(24.0734_MHz_XTAL / 6, 442, 0, 400, 264, 0, 240) // ~NTSC compatible video timing (?)
-
- MCFG_SCREEN_UPDATE_DRIVER(rainbow_state, screen_update_rainbow)
- MCFG_SCREEN_PALETTE("vt100_video:palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(24.0734_MHz_XTAL / 6, 442, 0, 400, 264, 0, 240); // ~NTSC compatible video timing (?)
+ screen.set_screen_update(FUNC(rainbow_state::screen_update_rainbow));
+ screen.set_palette("vt100_video:palette");
GFXDECODE(config, "gfxdecode", "vt100_video:palette", gfx_rainbow);
RAINBOW_VIDEO(config, m_crtc, 24.0734_MHz_XTAL);
@@ -3233,19 +3233,19 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
m_hgdc->set_display_pixels(FUNC(rainbow_state::hgdc_display_pixels));
m_hgdc->set_screen(m_screen2); // set_screen needs to be added after 7720 device in the machine config, not after the screen.
- MCFG_PALETTE_ADD("palette2", 32)
+ PALETTE(config, m_palette2).set_entries(32);
- MCFG_SCREEN_ADD("screen2", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE)
+ SCREEN(config, m_screen2, SCREEN_TYPE_RASTER);
+ m_screen2->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE);
// VR241 color monitor is specified for 20 MHz bandwidth ( 60 Hz / 15.72 kHz horizontal rate )
// - sufficient for 800 x 240 non-interlaced at 60 Hz (non interlaced).
- //MCFG_SCREEN_RAW_PARAMS(31188000 / 2 , 992, 0, 800, 262, 0, 240)
+ //m_screen2->set_raw(31188000 / 2 , 992, 0, 800, 262, 0, 240);
// Alternate configuration:
- MCFG_SCREEN_RAW_PARAMS(31188000 / 4 , 496, 0, 400, 262, 0, 240)
+ m_screen2->set_raw(31188000 / 4 , 496, 0, 400, 262, 0, 240);
- MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update)
+ m_screen2->set_screen_update("upd7220", FUNC(upd7220_device::screen_update));
FD1793(config, m_fdc, 24.0734_MHz_XTAL / 24); // no separate 1 Mhz quartz
FLOPPY_CONNECTOR(config, FD1793_TAG ":0", rainbow_floppies, "525qd", rainbow_state::floppy_formats);
@@ -3277,18 +3277,14 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
m_hdc->in_sc_callback().set_constant(1); // SEEK COMPLETE (VCC = complete)
m_hdc->in_tk000_callback().set_constant(1); // TRACK 00 signal (= from drive)
- MCFG_HARDDISK_ADD("decharddisk1")
+ HARDDISK(config, "decharddisk1");
/// ******************************** / HARD DISK CONTROLLER ****************************************
- MCFG_DEVICE_ADD("corvus", CORVUS_HDC, 0)
- MCFG_HARDDISK_ADD("harddisk1")
- MCFG_HARDDISK_INTERFACE("corvus_hdd")
- MCFG_HARDDISK_ADD("harddisk2")
- MCFG_HARDDISK_INTERFACE("corvus_hdd")
- MCFG_HARDDISK_ADD("harddisk3")
- MCFG_HARDDISK_INTERFACE("corvus_hdd")
- MCFG_HARDDISK_ADD("harddisk4")
- MCFG_HARDDISK_INTERFACE("corvus_hdd")
+ CORVUS_HDC(config, m_corvus_hdc, 0);
+ HARDDISK(config, "harddisk1", "corvus_hdd");
+ HARDDISK(config, "harddisk2", "corvus_hdd");
+ HARDDISK(config, "harddisk3", "corvus_hdd");
+ HARDDISK(config, "harddisk4", "corvus_hdd");
DS1315(config, m_rtc, 0); // DS1315 (ClikClok for DEC-100 B) * OPTIONAL *
@@ -3335,7 +3331,7 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
TIMER(config, "motor").configure_periodic(FUNC(rainbow_state::hd_motor_tick), attotime::from_hz(60));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
//----------------------------------------------------------------------------------------
// 'Rainbow 100-A' (system module 70-19974-00, PSU H7842-A)
diff --git a/src/mame/drivers/rampart.cpp b/src/mame/drivers/rampart.cpp
index 87f7f01474a..4d414967a9a 100644
--- a/src/mame/drivers/rampart.cpp
+++ b/src/mame/drivers/rampart.cpp
@@ -338,11 +338,11 @@ GFXDECODE_END
*
*************************************/
-MACHINE_CONFIG_START(rampart_state::rampart)
-
+void rampart_state::rampart(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, MASTER_CLOCK/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rampart_state::main_map);
SLAPSTIC(config, m_slapstic_device, 118, true);
@@ -357,24 +357,22 @@ MACHINE_CONFIG_START(rampart_state::rampart)
ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, rampart_state::s_mob_config);
m_mob->set_gfxdecode(m_gfxdecode);
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240)
- MCFG_SCREEN_UPDATE_DRIVER(rampart_state, screen_update_rampart)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rampart_state, video_int_write_line))
+ m_screen->set_raw(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240);
+ m_screen->set_screen_update(FUNC(rampart_state::screen_update_rampart));
+ m_screen->set_palette("palette");
+ m_screen->screen_vblank().set(FUNC(rampart_state::video_int_write_line));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, MASTER_CLOCK/4/3, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
+ OKIM6295(config, m_oki, MASTER_CLOCK/4/3, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.60);
- MCFG_DEVICE_ADD("ymsnd", YM2413, MASTER_CLOCK/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ YM2413(config, m_ym2413, MASTER_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/drivers/ramtek.cpp b/src/mame/drivers/ramtek.cpp
index b939c83ce5e..b87e632ee69 100644
--- a/src/mame/drivers/ramtek.cpp
+++ b/src/mame/drivers/ramtek.cpp
@@ -110,11 +110,11 @@ void ramtek_state::video_start()
{
}
-MACHINE_CONFIG_START(ramtek_state::ramtek)
-
+void ramtek_state::ramtek(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
- MCFG_NETLIST_SETUP(ramtek)
+ NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK);
+ m_maincpu->set_constructor(netlist_ramtek);
/* video hardware */
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
@@ -124,7 +124,7 @@ MACHINE_CONFIG_START(ramtek_state::ramtek)
m_video->set_vert_params(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL);
m_video->set_fieldcount(1);
m_video->set_threshold(0.30);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp
index a9d2c13ac49..e3bdc534b22 100644
--- a/src/mame/drivers/rbisland.cpp
+++ b/src/mame/drivers/rbisland.cpp
@@ -653,15 +653,15 @@ WRITE8_MEMBER(rbisland_state::counters_w)
machine().bookkeeping().coin_counter_w(0, data & 0x10);
}
-MACHINE_CONFIG_START(rbisland_state::rbisland)
-
+void rbisland_state::rbisland(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(rbisland_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, interrupt)
+ M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::interrupt));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(rbisland_sound_map)
+ Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_sound_map);
TAITO_CCHIP(config, m_cchip, 12_MHz_XTAL); // 12MHz OSC next to C-Chip
m_cchip->in_pa_callback().set_ioport("800007");
@@ -675,13 +675,13 @@ MACHINE_CONFIG_START(rbisland_state::rbisland)
config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow)
- MCFG_SCREEN_PALETTE(m_palette)
+ 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(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(rbisland_state::screen_update_rainbow));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rbisland);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048);
@@ -706,31 +706,31 @@ MACHINE_CONFIG_START(rbisland_state::rbisland)
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
-MACHINE_CONFIG_END
+}
/* Jumping: The PCB has 2 Xtals, 18.432MHz and 24MHz */
-MACHINE_CONFIG_START(rbisland_state::jumping)
-
+void rbisland_state::jumping(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(18'432'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(jumping_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
+ M68000(config, m_maincpu, XTAL(18'432'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::irq4_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/4) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(jumping_sound_map)
+ Z80(config, m_audiocpu, XTAL(24'000'000)/4); /* verified on pcb */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_sound_map);
config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough unless otherwise */
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping)
- MCFG_SCREEN_PALETTE(m_palette)
+ 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(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(rbisland_state::screen_update_jumping));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jumping);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 2048);
@@ -745,21 +745,18 @@ MACHINE_CONFIG_START(rbisland_state::jumping)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ym1", YM2203, XTAL(24'000'000)/8) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+ YM2203(config, "ym1", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */
- MCFG_DEVICE_ADD("ym2", YM2203, XTAL(24'000'000)/8) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
-MACHINE_CONFIG_END
+ YM2203(config, "ym2", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */
+}
/* Imnoe PCB uses 16MHz CPU crystal instead of 18.432 for CPU */
-MACHINE_CONFIG_START(rbisland_state::jumpingi)
+void rbisland_state::jumpingi(machine_config &config)
+{
jumping(config);
- MCFG_DEVICE_REPLACE("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(jumping_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(XTAL(16'000'000)/2); /* verified on pcb */
+}
/***************************************************************************
DRIVERS
diff --git a/src/mame/drivers/rbmk.cpp b/src/mame/drivers/rbmk.cpp
index cac0dc61cfa..e462f197e72 100644
--- a/src/mame/drivers/rbmk.cpp
+++ b/src/mame/drivers/rbmk.cpp
@@ -565,10 +565,11 @@ uint32_t rbmk_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
return 0;
}
-MACHINE_CONFIG_START(rbmk_state::rbmk)
- MCFG_DEVICE_ADD("maincpu", M68000, 22000000 /2)
- MCFG_DEVICE_PROGRAM_MAP(rbmk_mem)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbmk_state, irq1_line_hold)
+void rbmk_state::rbmk(machine_config &config)
+{
+ M68000(config, m_maincpu, 22000000 /2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::rbmk_mem);
+ m_maincpu->set_vblank_int("screen", FUNC(rbmk_state::irq1_line_hold));
AT89C4051(config, m_mcu, 22000000 / 4); // frequency isn't right
m_mcu->set_addrmap(AS_PROGRAM, &rbmk_state::mcu_mem);
@@ -577,13 +578,13 @@ MACHINE_CONFIG_START(rbmk_state::rbmk)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rbmk);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rbmk_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(rbmk_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x800);
@@ -592,25 +593,24 @@ MACHINE_CONFIG_START(rbmk_state::rbmk)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1122000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47)
+ okim6295_device &oki(OKIM6295(config, "oki", 1122000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
+ oki.add_route(ALL_OUTPUTS, "lspeaker", 0.47);
+ oki.add_route(ALL_OUTPUTS, "rspeaker", 0.47);
YM2151(config, m_ymsnd, 22000000 / 8);
m_ymsnd->add_route(0, "lspeaker", 0.60);
m_ymsnd->add_route(1, "rspeaker", 0.60);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rbmk_state::rbspm)
+void rbmk_state::rbspm(machine_config &config)
+{
rbmk(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(rbspm_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::rbspm_mem);
- MCFG_DEVICE_MODIFY("mcu")
- MCFG_DEVICE_DISABLE() // until decapped
+ m_mcu->set_disable(); // until decapped
// PIC16F84 but no CPU core available
-MACHINE_CONFIG_END
+}
// 实战麻将王 (Shízhàn Májiàng Wáng)
ROM_START( rbmk )
diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp
index 4a9fede162d..5df8b76a730 100644
--- a/src/mame/drivers/rc702.cpp
+++ b/src/mame/drivers/rc702.cpp
@@ -331,7 +331,8 @@ static void floppies(device_slot_interface &device)
device.option_add("525qd", FLOPPY_525_QD);
}
-MACHINE_CONFIG_START(rc702_state::rc702)
+void rc702_state::rc702(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, XTAL(8'000'000) / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &rc702_state::rc702_mem);
@@ -378,11 +379,11 @@ MACHINE_CONFIG_START(rc702_state::rc702)
m_7474->comp_output_cb().set(FUNC(rc702_state::qbar_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(272*2, 200+4*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 272*2-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", i8275_device, screen_update)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_size(272*2, 200+4*8);
+ screen.set_visarea(0, 272*2-1, 0, 200-1);
+ screen.set_screen_update("crtc", FUNC(i8275_device::screen_update));
i8275_device &crtc(I8275(config, "crtc", 11640000/7));
crtc.set_character_width(7);
@@ -396,7 +397,7 @@ MACHINE_CONFIG_START(rc702_state::rc702)
/* sound hardware */
SPEAKER(config, "mono").front_center();
BEEP(config, m_beep, 1000).add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/rcorsair.cpp b/src/mame/drivers/rcorsair.cpp
index dd4bf635ba6..cff08bd03b0 100644
--- a/src/mame/drivers/rcorsair.cpp
+++ b/src/mame/drivers/rcorsair.cpp
@@ -156,30 +156,30 @@ uint32_t rcorsair_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
return 0;
}
-MACHINE_CONFIG_START(rcorsair_state::rcorsair)
-
+void rcorsair_state::rcorsair(machine_config &config)
+{
/* Main CPU is probably inside Custom Block with
program code, unknown type */
- MCFG_DEVICE_ADD("maincpu", Z80, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(rcorsair_main_map)
- //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rcorsair_state, irq0_line_hold)
+ Z80(config, m_maincpu, 8000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_main_map);
+ //m_maincpu->set_vblank_int("screen", FUNC(rcorsair_state::irq0_line_hold));
- MCFG_DEVICE_ADD("subcpu", I8035, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(rcorsair_sub_map)
- MCFG_DEVICE_IO_MAP(rcorsair_sub_io_map)
+ I8035(config, m_subcpu, 8000000);
+ m_subcpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_sub_map);
+ m_subcpu->set_addrmap(AS_IO, &rcorsair_state::rcorsair_sub_io_map);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_DRIVER(rcorsair_state, screen_update)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_screen_update(FUNC(rcorsair_state::screen_update));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 0, 256-1);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_rcorsair);
- MCFG_PALETTE_ADD("palette", 0x100)
-MACHINE_CONFIG_END
+ PALETTE(config, "palette").set_entries(0x100);
+}
ROM_START( rcorsair )
ROM_REGION( 0x6000, "maincpu", 0 )
diff --git a/src/mame/drivers/rd110.cpp b/src/mame/drivers/rd110.cpp
index a51994b7ef5..b9a9f62cd9e 100644
--- a/src/mame/drivers/rd110.cpp
+++ b/src/mame/drivers/rd110.cpp
@@ -233,7 +233,8 @@ void d110_state::d110_map(address_map &map)
map(0xc000, 0xffff).bankrw("fixed");
}
-MACHINE_CONFIG_START(d110_state::d110)
+void d110_state::d110(machine_config &config)
+{
P8098(config, m_maincpu, 12_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &d110_state::d110_map);
m_maincpu->serial_tx_cb().set(FUNC(d110_state::midi_w));
@@ -247,13 +248,13 @@ MACHINE_CONFIG_START(d110_state::d110)
RAM( config, m_memc ).set_default_size( "32K" );
NVRAM( config, m_memcs, nvram_device::DEFAULT_ALL_0 );
- MCFG_SCREEN_ADD( "screen", LCD )
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_UPDATE_DRIVER(d110_state, screen_update)
-// MCFG_SCREEN_SIZE(20*6-1, 2*9-1)
- MCFG_SCREEN_SIZE(16*6-1, (16*6-1)*3/4)
- MCFG_SCREEN_VISIBLE_AREA(0, 16*6-2, 0, (16*6-1)*3/4-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_screen_update(FUNC(d110_state::screen_update));
+// screen.set_size(20*6-1, 2*9-1);
+ screen.set_size(16*6-1, (16*6-1)*3/4);
+ screen.set_visarea(0, 16*6-2, 0, (16*6-1)*3/4-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(d110_state::d110_palette), 2);
@@ -262,7 +263,7 @@ MACHINE_CONFIG_START(d110_state::d110)
TIMER(config, m_midi_timer).configure_generic(FUNC(d110_state::midi_timer_cb));
TIMER(config, "samples_timer").configure_periodic(FUNC(d110_state::samples_timer_cb), attotime::from_hz(32000*2) );
-MACHINE_CONFIG_END
+}
ROM_START( d110 )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/realbrk.cpp b/src/mame/drivers/realbrk.cpp
index 023963328dd..c1a07c2cbd8 100644
--- a/src/mame/drivers/realbrk.cpp
+++ b/src/mame/drivers/realbrk.cpp
@@ -767,26 +767,26 @@ WRITE_LINE_MEMBER(realbrk_state::vblank_irq)
m_tmp68301->external_interrupt_1();
}
-MACHINE_CONFIG_START(realbrk_state::realbrk)
-
+void realbrk_state::realbrk(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, M68000, XTAL(32'000'000) / 2) /* !! TMP68301 !! */
- MCFG_DEVICE_PROGRAM_MAP(realbrk_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback)
+ M68000(config, m_maincpu, XTAL(32'000'000) / 2); /* !! TMP68301 !! */
+ m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::realbrk_mem);
+ m_maincpu->set_irq_acknowledge_callback("tmp68301", FUNC(tmp68301_device::irq_callback));
TMP68301(config, m_tmp68301, 0);
m_tmp68301->set_cputag(m_maincpu);
m_tmp68301->out_parallel_callback().set(FUNC(realbrk_state::realbrk_flipscreen_w));
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(0x140, 0xe0)
- MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, realbrk_state, vblank_irq))
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(0x140, 0xe0);
+ m_screen->set_visarea(0, 0x140-1, 0, 0xe0-1);
+ m_screen->set_screen_update(FUNC(realbrk_state::screen_update));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(realbrk_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_realbrk);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x8000);
@@ -795,40 +795,40 @@ MACHINE_CONFIG_START(realbrk_state::realbrk)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(33'868'800) / 2)
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
+ ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(33'868'800) / 2));
+ ymz.add_route(0, "lspeaker", 0.50);
+ ymz.add_route(1, "rspeaker", 0.50);
- MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
-MACHINE_CONFIG_END
+ ym2413_device &ymsnd(YM2413(config, "ymsnd", XTAL(3'579'545)));
+ ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 0.50);
+ ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
+}
-MACHINE_CONFIG_START(realbrk_state::pkgnsh)
+void realbrk_state::pkgnsh(machine_config &config)
+{
realbrk(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(pkgnsh_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::pkgnsh_mem);
m_tmp68301->out_parallel_callback().set_nop();
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(realbrk_state::pkgnshdx)
+void realbrk_state::pkgnshdx(machine_config &config)
+{
pkgnsh(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(pkgnshdx_mem)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::pkgnshdx_mem);
+}
-MACHINE_CONFIG_START(realbrk_state::dai2kaku)
+void realbrk_state::dai2kaku(machine_config &config)
+{
realbrk(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(dai2kaku_mem)
+ m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::dai2kaku_mem);
m_gfxdecode->set_info(gfx_dai2kaku);
m_screen->set_screen_update(FUNC(realbrk_state::screen_update_dai2kaku));
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/redalert.cpp b/src/mame/drivers/redalert.cpp
index 85d587ecf1e..a677afeae6f 100644
--- a/src/mame/drivers/redalert.cpp
+++ b/src/mame/drivers/redalert.cpp
@@ -391,61 +391,61 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(redalert_state::redalert)
-
+void redalert_state::redalert(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(redalert_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt)
+ M6502(config, m_maincpu, MAIN_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::redalert_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt));
/* video hardware */
redalert_video(config);
/* audio hardware */
redalert_audio(config);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(redalert_state::ww3)
+}
+void redalert_state::ww3(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(ww3_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt)
+ M6502(config, m_maincpu, MAIN_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::ww3_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt));
/* video hardware */
ww3_video(config);
/* audio hardware */
ww3_audio(config);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(redalert_state::panther)
+}
+void redalert_state::panther(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(panther_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt)
+ M6502(config, m_maincpu, MAIN_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::panther_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt));
/* video hardware */
panther_video(config);
/* audio hardware */
ww3_audio(config);
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(redalert_state::demoneye)
+}
+void redalert_state::demoneye(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(demoneye_main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt)
+ M6502(config, m_maincpu, MAIN_CPU_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::demoneye_main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt));
/* video hardware */
demoneye_video(config);
/* audio hardware */
demoneye_audio(config);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/relief.cpp b/src/mame/drivers/relief.cpp
index add178d614c..3f55fbc6d43 100644
--- a/src/mame/drivers/relief.cpp
+++ b/src/mame/drivers/relief.cpp
@@ -255,11 +255,11 @@ GFXDECODE_END
*
*************************************/
-MACHINE_CONFIG_START(relief_state::relief)
-
+void relief_state::relief(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14.318181_MHz_XTAL/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, 14.318181_MHz_XTAL/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &relief_state::main_map);
EEPROM_2816(config, "eeprom").lock_after_write(true);
@@ -275,24 +275,23 @@ MACHINE_CONFIG_START(relief_state::relief)
TILEMAP(config, "vad:playfield2", m_gfxdecode, 2, 8, 8, TILEMAP_SCAN_COLS, 64, 64, 0).set_info_callback(DEVICE_SELF_OWNER, FUNC(relief_state::get_playfield2_tile_info));
ATARI_MOTION_OBJECTS(config, "vad:mob", 0, m_screen, relief_state::s_mob_config).set_gfxdecode(m_gfxdecode);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
/* note: these parameters are from published specs, not derived */
/* the board uses a VAD chip to generate video signals */
- MCFG_SCREEN_RAW_PARAMS(14.318181_MHz_XTAL/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_DRIVER(relief_state, screen_update_relief)
- MCFG_SCREEN_PALETTE("palette")
+ m_screen->set_raw(14.318181_MHz_XTAL/2, 456, 0, 336, 262, 0, 240);
+ m_screen->set_screen_update(FUNC(relief_state::screen_update_relief));
+ m_screen->set_palette("palette");
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 14.318181_MHz_XTAL/4/3, okim6295_device::PIN7_LOW)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
+ OKIM6295(config, m_oki, 14.318181_MHz_XTAL/4/3, okim6295_device::PIN7_LOW);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 0.50);
+ m_oki->set_addrmap(0, &relief_state::oki_map);
- MCFG_DEVICE_ADD("ymsnd", YM2413, 14.318181_MHz_XTAL/4)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ YM2413(config, m_ym2413, 14.318181_MHz_XTAL/4).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
diff --git a/src/mame/drivers/retofinv.cpp b/src/mame/drivers/retofinv.cpp
index 1a4bb7374be..bb0be85c97b 100644
--- a/src/mame/drivers/retofinv.cpp
+++ b/src/mame/drivers/retofinv.cpp
@@ -412,22 +412,22 @@ INTERRUPT_GEN_MEMBER(retofinv_state::sub_vblank_irq)
}
-MACHINE_CONFIG_START(retofinv_state::retofinv)
-
+void retofinv_state::retofinv(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, main_vblank_irq)
+ Z80(config, m_maincpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(retofinv_state::main_vblank_irq));
- MCFG_DEVICE_ADD("sub", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(sub_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, sub_vblank_irq)
+ Z80(config, m_subcpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &retofinv_state::sub_map);
+ m_subcpu->set_vblank_int("screen", FUNC(retofinv_state::sub_vblank_irq));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(retofinv_state, nmi_line_pulse, 2*60) // wrong, should be ~128-132 per frame, not 120.
+ Z80(config, m_audiocpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &retofinv_state::sound_map);
+ m_audiocpu->set_periodic_int(FUNC(retofinv_state::nmi_line_pulse), attotime::from_hz(2*60)); // wrong, should be ~128-132 per frame, not 120.
- MCFG_DEVICE_ADD("68705", TAITO68705_MCU, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */
+ TAITO68705_MCU(config, m_68705, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */
config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - enough for the sound CPU to read all commands */
@@ -442,13 +442,13 @@ MACHINE_CONFIG_START(retofinv_state::retofinv)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60.58) // vsync measured at 60.58hz
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // 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(retofinv_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60.58); // vsync measured at 60.58hz
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); // 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(retofinv_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_retofinv);
PALETTE(config, m_palette, FUNC(retofinv_state::retofinv_palette), 256*2 + 64*16 + 64*16, 256);
@@ -458,42 +458,41 @@ MACHINE_CONFIG_START(retofinv_state::retofinv)
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(18'432'000)/6) /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ SN76489A(config, "sn1", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */
- MCFG_DEVICE_ADD("sn2", SN76489A, XTAL(18'432'000)/6) /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
+ SN76489A(config, "sn2", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */
+}
/* bootleg which has different palette clut */
-MACHINE_CONFIG_START(retofinv_state::retofinvb1)
+void retofinv_state::retofinvb1(machine_config &config)
+{
retofinv(config);
m_palette->set_init(FUNC(retofinv_state::retofinv_bl_palette));
-MACHINE_CONFIG_END
+}
/* bootleg which has no mcu */
-MACHINE_CONFIG_START(retofinv_state::retofinvb_nomcu)
+void retofinv_state::retofinvb_nomcu(machine_config &config)
+{
retofinv(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(bootleg_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map);
m_mainlatch->q_out_cb<3>().set_nop();
config.device_remove("68705");
-MACHINE_CONFIG_END
+}
-/* bootleg which has different pallete clut and also has no mcu */
-MACHINE_CONFIG_START(retofinv_state::retofinvb1_nomcu)
+/* bootleg which has different palette clut and also has no mcu */
+void retofinv_state::retofinvb1_nomcu(machine_config &config)
+{
retofinvb1(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(bootleg_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map);
m_mainlatch->q_out_cb<3>().set_nop();
config.device_remove("68705");
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp
index 0679d53292a..e97c01ba358 100644
--- a/src/mame/drivers/rex6000.cpp
+++ b/src/mame/drivers/rex6000.cpp
@@ -897,22 +897,22 @@ GFXDECODE_END
MACHINE_CONFIG_START(rex6000_state::rex6000)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000)) //Toshiba microprocessor Z80 compatible at 4.3MHz
- MCFG_DEVICE_PROGRAM_MAP(rex6000_mem)
- MCFG_DEVICE_IO_MAP(rex6000_io)
+ Z80(config, m_maincpu, XTAL(4'000'000)); //Toshiba microprocessor Z80 compatible at 4.3MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &rex6000_state::rex6000_mem);
+ m_maincpu->set_addrmap(AS_IO, &rex6000_state::rex6000_io);
TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1));
TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(32));
TIMER(config, "irq_timer2").configure_periodic(FUNC(rex6000_state::irq_timer2), attotime::from_hz(4096));
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(rex6000_state, screen_update)
- MCFG_SCREEN_SIZE(240, 120)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 120-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(rex6000_state::screen_update));
+ screen.set_size(240, 120);
+ screen.set_visarea(0, 240-1, 0, 120-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(rex6000_state::rex6000_palettte), 2);
GFXDECODE(config, "gfxdecode", "palette", gfx_rex6000);
@@ -956,15 +956,14 @@ MACHINE_CONFIG_START(rex6000_state::rex6000)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD( "beeper", BEEP, 0 )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 )
+ BEEP(config, m_beep, 0).add_route(ALL_OUTPUTS, "mono", 1.00);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(oz750_state::oz750)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(9'830'400)) //Toshiba microprocessor Z80 compatible at 9.8MHz
- MCFG_DEVICE_PROGRAM_MAP(rex6000_mem)
- MCFG_DEVICE_IO_MAP(oz750_io)
+ Z80(config, m_maincpu, XTAL(9'830'400)); //Toshiba microprocessor Z80 compatible at 9.8MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &oz750_state::rex6000_mem);
+ m_maincpu->set_addrmap(AS_IO, &oz750_state::oz750_io);
TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1));
TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(64));
@@ -984,13 +983,13 @@ MACHINE_CONFIG_START(oz750_state::oz750)
//serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(oz750_state, screen_update_oz)
- MCFG_SCREEN_SIZE(240, 80)
- MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 80-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(oz750_state::screen_update_oz));
+ screen.set_size(240, 80);
+ screen.set_visarea(0, 240-1, 0, 80-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(rex6000_state::rex6000_palettte), 2);
@@ -1011,8 +1010,7 @@ MACHINE_CONFIG_START(oz750_state::oz750)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD( "beeper", BEEP, 0 )
- MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 )
+ BEEP(config, m_beep, 0).add_route(ALL_OUTPUTS, "mono", 1.00);
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/rgum.cpp b/src/mame/drivers/rgum.cpp
index 610be95ca91..71a606245ab 100644
--- a/src/mame/drivers/rgum.cpp
+++ b/src/mame/drivers/rgum.cpp
@@ -245,19 +245,20 @@ static GFXDECODE_START( gfx_rgum )
GFXDECODE_END
-MACHINE_CONFIG_START(rgum_state::rgum)
+void rgum_state::rgum(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M65C02,24000000/16) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(rgum_map)
+ M65C02(config, m_maincpu, 24000000/16); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rgum_state::rgum_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_DRIVER(rgum_state, screen_update_royalgum)
- MCFG_SCREEN_PALETTE("palette")
+ 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(256, 256);
+ screen.set_visarea(0, 256-1, 0, 256-1);
+ screen.set_screen_update(FUNC(rgum_state::screen_update_royalgum));
+ screen.set_palette(m_palette);
mc6845_device &crtc(MC6845(config, "crtc", 24000000/16)); /* unknown clock & type, hand tuned to get ~50 fps (?) */
crtc.set_screen("screen");
@@ -271,12 +272,12 @@ MACHINE_CONFIG_START(rgum_state::rgum)
ppi.in_pc_callback().set_ioport("IN2");
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rgum);
- MCFG_PALETTE_ADD("palette", 0x100)
+ PALETTE(config, m_palette).set_entries(0x100);
SPEAKER(config, "mono").front_center();
AY8910(config, "aysnd", 24000000/16).add_route(ALL_OUTPUTS, "mono", 0.50); /* guessed to use the same xtal as the crtc */
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/riscpc.cpp b/src/mame/drivers/riscpc.cpp
index b08056fdbfa..055e68225a8 100644
--- a/src/mame/drivers/riscpc.cpp
+++ b/src/mame/drivers/riscpc.cpp
@@ -814,86 +814,91 @@ void riscpc_state::machine_reset()
m_flyback_timer->adjust( attotime::never);
}
-MACHINE_CONFIG_START(riscpc_state::rpc600)
+void riscpc_state::rpc600(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, 60_MHz_XTAL/2) // ARM610
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, 60_MHz_XTAL/2); // ARM610
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(riscpc_state::rpc700)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
+
+void riscpc_state::rpc700(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, 80_MHz_XTAL/2) // ARM710
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, 80_MHz_XTAL/2); // ARM710
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(riscpc_state::a7000)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
+
+void riscpc_state::a7000(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, XTAL(32'000'000) ) // ARM7500
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, XTAL(32'000'000)); // ARM7500
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(riscpc_state::a7000p)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
+
+void riscpc_state::a7000p(machine_config &config)
+{
a7000(config);
- MCFG_DEVICE_MODIFY("maincpu") // ARM7500FE
- MCFG_DEVICE_CLOCK(XTAL(48'000'000))
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(XTAL(48'000'000)); // ARM7500FE
+}
-MACHINE_CONFIG_START(riscpc_state::sarpc)
+void riscpc_state::sarpc(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, 202000000 ) // StrongARM
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, 202000000); // StrongARM
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(riscpc_state::sarpc_j233)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
+
+void riscpc_state::sarpc_j233(machine_config &config)
+{
/* Basic machine hardware */
- MCFG_DEVICE_ADD( "maincpu", ARM7, 233000000 ) // StrongARM
- MCFG_DEVICE_PROGRAM_MAP(a7000_mem)
+ ARM7(config, m_maincpu, 233000000); // StrongARM
+ m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(1900, 1080) //max available size
- MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update)
- MCFG_PALETTE_ADD("palette", 0x200)
-MACHINE_CONFIG_END
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(1900, 1080); //max available size
+ m_screen->set_visarea(0, 1900-1, 0, 1080-1);
+ m_screen->set_screen_update(FUNC(riscpc_state::screen_update));
+ PALETTE(config, m_palette).set_entries(0x200);
+}
ROM_START(rpc600)
ROM_REGION( 0x800000, "user1", ROMREGION_ERASEFF )
diff --git a/src/mame/drivers/rltennis.cpp b/src/mame/drivers/rltennis.cpp
index ace73fd5f9e..9803fba9585 100644
--- a/src/mame/drivers/rltennis.cpp
+++ b/src/mame/drivers/rltennis.cpp
@@ -181,20 +181,20 @@ void rltennis_state::ramdac_map(address_map &map)
map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb888_w));
}
-MACHINE_CONFIG_START(rltennis_state::rltennis)
-
- MCFG_DEVICE_ADD("maincpu", M68000, RLT_XTAL/2) /* 68000P8 ??? */
- MCFG_DEVICE_PROGRAM_MAP(rltennis_main)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rltennis_state, interrupt)
+void rltennis_state::rltennis(machine_config &config)
+{
+ M68000(config, m_maincpu, RLT_XTAL/2); /* 68000P8 ??? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rltennis_state::rltennis_main);
+ m_maincpu->set_vblank_int("screen", FUNC(rltennis_state::interrupt));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE( RLT_REFRESH_RATE )
- MCFG_SCREEN_SIZE(320, 240)
- MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(rltennis_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(RLT_REFRESH_RATE);
+ screen.set_size(320, 240);
+ screen.set_visarea(0, 319, 0, 239);
+ screen.set_screen_update(FUNC(rltennis_state::screen_update));
+ screen.set_palette("palette");
- MCFG_PALETTE_ADD("palette", 256)
+ PALETTE(config, "palette").set_entries(256);
EEPROM_2864(config, "eeprom");
@@ -209,7 +209,7 @@ MACHINE_CONFIG_START(rltennis_state::rltennis)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
ROM_START( rltennis )
ROM_REGION( 0x100000, "maincpu", 0 )
diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp
index 1b9c3dd745b..7b648e24133 100644
--- a/src/mame/drivers/rm380z.cpp
+++ b/src/mame/drivers/rm380z.cpp
@@ -234,22 +234,23 @@ uint32_t rm380z_state::screen_update_rm380z(screen_device &screen, bitmap_ind16
return 0;
}
-MACHINE_CONFIG_START(rm380z_state::rm380z)
+void rm380z_state::rm380z(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(RM380Z_MAINCPU_TAG, Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(rm380z_mem)
- MCFG_DEVICE_IO_MAP(rm380z_io)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rm380z_state::rm380z_mem);
+ m_maincpu->set_addrmap(AS_IO, &rm380z_state::rm380z_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
// according to videos and pictures of the real hardware, chars are spaced of at least 1 pixel
// and there is at least 1 pixel between each row of characters
- MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)))
- MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1)
- MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm380z)
- MCFG_SCREEN_PALETTE("palette")
+ screen.set_size((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)));
+ screen.set_visarea(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1);
+ screen.set_screen_update(FUNC(rm380z_state::screen_update_rm380z));
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -271,30 +272,31 @@ MACHINE_CONFIG_START(rm380z_state::rm380z)
/* keyboard */
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put));
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rm380z_state::rm480z)
+void rm380z_state::rm480z(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(RM380Z_MAINCPU_TAG, Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(rm480z_mem)
- MCFG_DEVICE_IO_MAP(rm480z_io)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rm380z_state::rm480z_mem);
+ m_maincpu->set_addrmap(AS_IO, &rm380z_state::rm480z_io);
MCFG_MACHINE_RESET_OVERRIDE(rm380z_state, rm480z)
/* video hardware */
-// MCFG_SCREEN_ADD("screen", RASTER)
-// MCFG_SCREEN_REFRESH_RATE(50)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
-// MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)))
-// MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1)
-// MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm480z)
-// MCFG_SCREEN_PALETTE("palette")
+// screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+// screen.set_refresh_hz(50);
+// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+// screen.set_size((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)));
+// screen.set_visarea(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1);
+// screen.set_screen_update(FUNC(rm380z_state::screen_update_rm480z));
+// screen.set_palette("palette");
-// MCFG_PALETTE_ADD_MONOCHROME("palette")
+// PALETTE(config, "palette", palette_device::MONOCHROME);
/* keyboard */
// generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
// keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put));
-MACHINE_CONFIG_END
+}
/* ROM definitions */
diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp
index f8e367dda5d..5c9c3cffe24 100644
--- a/src/mame/drivers/rmnimbus.cpp
+++ b/src/mame/drivers/rmnimbus.cpp
@@ -127,7 +127,7 @@ void rmnimbus_state::nimbus(machine_config &config)
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(4.433619_MHz_XTAL * 2, 650, 0, 640, 260, 0, 250);
m_screen->set_screen_update(FUNC(rmnimbus_state::screen_update_nimbus));
- //MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
+ //m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE);
m_screen->set_palette(m_palette);
PALETTE(config, m_palette).set_entries(16);
diff --git a/src/mame/drivers/rmt32.cpp b/src/mame/drivers/rmt32.cpp
index f325012954e..3e93698e165 100644
--- a/src/mame/drivers/rmt32.cpp
+++ b/src/mame/drivers/rmt32.cpp
@@ -349,22 +349,23 @@ void mt32_state::mt32_map(address_map &map)
map(0xc000, 0xffff).bankrw("fixed");
}
-MACHINE_CONFIG_START(mt32_state::mt32)
- i8x9x_device &maincpu(P8098(config, "maincpu", 12_MHz_XTAL));
+void mt32_state::mt32(machine_config &config)
+{
+ i8x9x_device &maincpu(P8098(config, cpu, 12_MHz_XTAL));
maincpu.set_addrmap(AS_PROGRAM, &mt32_state::mt32_map);
maincpu.ach7_cb().set_ioport("A7");
maincpu.serial_tx_cb().set(FUNC(mt32_state::midi_w));
maincpu.in_p0_cb().set(FUNC(mt32_state::port0_r));
- RAM( config, "ram" ).set_default_size( "32K" );
+ RAM(config, ram).set_default_size("32K");
- MCFG_SCREEN_ADD( "screen", LCD )
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_UPDATE_DRIVER(mt32_state, screen_update)
-// MCFG_SCREEN_SIZE(20*6-1, 9)
- MCFG_SCREEN_SIZE(20*6-1, (20*6-1)*3/4)
- MCFG_SCREEN_VISIBLE_AREA(0, 20*6-2, 0, (20*6-1)*3/4-1)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(50);
+ screen.set_screen_update(FUNC(mt32_state::screen_update));
+// screen.set_size(20*6-1, 9);
+ screen.set_size(20*6-1, (20*6-1)*3/4);
+ screen.set_visarea(0, 20*6-2, 0, (20*6-1)*3/4-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(mt32_state::mt32_palette), 2);
@@ -373,7 +374,7 @@ MACHINE_CONFIG_START(mt32_state::mt32)
TIMER(config, midi_timer).configure_generic(FUNC(mt32_state::midi_timer_cb));
TIMER(config, "samples_timer").configure_periodic(FUNC(mt32_state::samples_timer_cb), attotime::from_hz(32000*2));
-MACHINE_CONFIG_END
+}
ROM_START( mt32 )
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/rockrage.cpp b/src/mame/drivers/rockrage.cpp
index 81abbeb1508..803b9859ffa 100644
--- a/src/mame/drivers/rockrage.cpp
+++ b/src/mame/drivers/rockrage.cpp
@@ -248,26 +248,26 @@ void rockrage_state::machine_reset()
m_vreg = 0;
}
-MACHINE_CONFIG_START(rockrage_state::rockrage)
-
+void rockrage_state::rockrage(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", HD6309E, XTAL(24'000'000) / 8)
- MCFG_DEVICE_PROGRAM_MAP(rockrage_map)
+ HD6309E(config, m_maincpu, XTAL(24'000'000) / 8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rockrage_state::rockrage_map);
- MCFG_DEVICE_ADD("audiocpu", MC6809E, XTAL(24'000'000) / 16)
- MCFG_DEVICE_PROGRAM_MAP(rockrage_sound_map)
+ MC6809E(config, m_audiocpu, XTAL(24'000'000) / 16);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rockrage_state::rockrage_sound_map);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- 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(rockrage_state, screen_update_rockrage)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rockrage_state, vblank_irq))
+ 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(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(rockrage_state::screen_update_rockrage));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(rockrage_state::vblank_irq));
K007342(config, m_k007342, 0);
m_k007342->set_gfxnum(0);
@@ -292,11 +292,11 @@ MACHINE_CONFIG_START(rockrage_state::rockrage)
YM2151(config, "ymsnd", 3579545).add_route(0, "lspeaker", 0.60).add_route(1, "rspeaker", 0.60);
- MCFG_DEVICE_ADD("vlm", VLM5030, 3579545)
- MCFG_DEVICE_ADDRESS_MAP(0, rockrage_vlm_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60)
-MACHINE_CONFIG_END
+ VLM5030(config, m_vlm, 3579545);
+ m_vlm->set_addrmap(0, &rockrage_state::rockrage_vlm_map);
+ m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 0.60);
+ m_vlm->add_route(ALL_OUTPUTS, "rspeaker", 0.60);
+}
/***************************************************************************
diff --git a/src/mame/drivers/rocnrope.cpp b/src/mame/drivers/rocnrope.cpp
index d112e720d84..2518a36dfab 100644
--- a/src/mame/drivers/rocnrope.cpp
+++ b/src/mame/drivers/rocnrope.cpp
@@ -206,11 +206,11 @@ WRITE_LINE_MEMBER(rocnrope_state::vblank_irq)
m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
}
-MACHINE_CONFIG_START(rocnrope_state::rocnrope)
-
+void rocnrope_state::rocnrope(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", KONAMI1, MASTER_CLOCK / 3 / 4) /* Verified in schematics */
- MCFG_DEVICE_PROGRAM_MAP(rocnrope_map)
+ KONAMI1(config, m_maincpu, MASTER_CLOCK / 3 / 4); /* Verified in schematics */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rocnrope_state::rocnrope_map);
ls259_device &mainlatch(LS259(config, "mainlatch")); // B2
mainlatch.q_out_cb<0>().set(FUNC(rocnrope_state::flip_screen_w));
@@ -223,21 +223,21 @@ MACHINE_CONFIG_START(rocnrope_state::rocnrope)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- 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(rocnrope_state, screen_update_rocnrope)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rocnrope_state, vblank_irq))
+ 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(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(rocnrope_state::screen_update_rocnrope));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(rocnrope_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rocnrope);
PALETTE(config, m_palette, FUNC(rocnrope_state::rocnrope_palette), 16*16+16*16, 32);
/* sound hardware */
TIMEPLT_AUDIO(config, "timeplt_audio");
-MACHINE_CONFIG_END
+}
/*************************************
*
diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp
index 1a0bacf9abd..da1d4c8d39d 100644
--- a/src/mame/drivers/rohga.cpp
+++ b/src/mame/drivers/rohga.cpp
@@ -871,12 +871,12 @@ DECOSPR_COLOUR_CB_MEMBER(rohga_state::schmeisr_col_callback)
return colour;
}
-MACHINE_CONFIG_START(rohga_state::rohga)
-
+void rohga_state::rohga(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14000000)
- MCFG_DEVICE_PROGRAM_MAP(rohga_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert)
+ M68000(config, m_maincpu, 14000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::rohga_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert));
H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */
m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map);
@@ -884,18 +884,18 @@ MACHINE_CONFIG_START(rohga_state::rohga)
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);
/* video hardware */
- MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram[0]);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(rohga_state::screen_update_rohga));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_rohga);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
DECOCOMN(config, m_decocomn, 0);
m_decocomn->set_palette_tag(m_palette);
@@ -954,21 +954,21 @@ MACHINE_CONFIG_START(rohga_state::rohga)
ymsnd.add_route(0, "lspeaker", 0.78);
ymsnd.add_route(1, "rspeaker", 0.78);
- 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.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(rohga_state::wizdfire)
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40);
+}
+void rohga_state::wizdfire(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14000000)
- MCFG_DEVICE_PROGRAM_MAP(wizdfire_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert)
+ M68000(config, m_maincpu, 14000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::wizdfire_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert));
H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */
m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map);
@@ -976,18 +976,18 @@ MACHINE_CONFIG_START(rohga_state::wizdfire)
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);
/* video hardware */
- MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16)
- MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram[0]);
+ BUFFERED_SPRITERAM16(config, m_spriteram[1]);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_wizdfire)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(rohga_state::screen_update_wizdfire));
GFXDECODE(config, "gfxdecode", m_palette, gfx_wizdfire);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
DECOCOMN(config, m_decocomn, 0);
m_decocomn->set_palette_tag(m_palette);
@@ -1051,21 +1051,21 @@ MACHINE_CONFIG_START(rohga_state::wizdfire)
ymsnd.add_route(0, "lspeaker", 0.80);
ymsnd.add_route(1, "rspeaker", 0.80);
- 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.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
-MACHINE_CONFIG_END
+ 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);
-MACHINE_CONFIG_START(rohga_state::nitrobal)
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40);
+}
+void rohga_state::nitrobal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14000000)
- MCFG_DEVICE_PROGRAM_MAP(nitrobal_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert)
+ M68000(config, m_maincpu, 14000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::nitrobal_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert));
H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */
m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map);
@@ -1073,18 +1073,18 @@ MACHINE_CONFIG_START(rohga_state::nitrobal)
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);
/* video hardware */
- MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16)
- MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram[0]);
+ BUFFERED_SPRITERAM16(config, m_spriteram[1]);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_nitrobal)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(rohga_state::screen_update_nitrobal));
GFXDECODE(config, "gfxdecode", m_palette, gfx_wizdfire);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
DECOCOMN(config, m_decocomn, 0);
m_decocomn->set_palette_tag(m_palette);
@@ -1149,21 +1149,21 @@ MACHINE_CONFIG_START(rohga_state::nitrobal)
ymsnd.add_route(0, "lspeaker", 0.80);
ymsnd.add_route(1, "rspeaker", 0.80);
- 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.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
-MACHINE_CONFIG_END
+ 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);
-MACHINE_CONFIG_START(rohga_state::schmeisr)
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40);
+}
+void rohga_state::schmeisr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14000000)
- MCFG_DEVICE_PROGRAM_MAP(schmeisr_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert)
+ M68000(config, m_maincpu, 14000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::schmeisr_map);
+ m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert));
H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */
m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map);
@@ -1171,18 +1171,18 @@ MACHINE_CONFIG_START(rohga_state::schmeisr)
m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0);
/* video hardware */
- MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16)
+ BUFFERED_SPRITERAM16(config, m_spriteram[0]);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(58)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(58);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
+ screen.set_size(40*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(rohga_state::screen_update_rohga));
+ screen.set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_schmeisr);
- MCFG_PALETTE_ADD("palette", 2048)
+ PALETTE(config, m_palette).set_entries(2048);
DECOCOMN(config, m_decocomn, 0);
m_decocomn->set_palette_tag(m_palette);
@@ -1241,24 +1241,24 @@ MACHINE_CONFIG_START(rohga_state::schmeisr)
ymsnd.add_route(0, "lspeaker", 0.80);
ymsnd.add_route(1, "rspeaker", 0.80);
- 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.40)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH);
+ m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40);
+ m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40);
+}
-MACHINE_CONFIG_START(rohga_state::hangzo)
+void rohga_state::hangzo(machine_config &config)
+{
schmeisr(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(hangzo_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::hangzo_map);
+}
/**********************************************************************************/
diff --git a/src/mame/drivers/rollext.cpp b/src/mame/drivers/rollext.cpp
index 57de06bd0ea..8a5af16a441 100644
--- a/src/mame/drivers/rollext.cpp
+++ b/src/mame/drivers/rollext.cpp
@@ -543,25 +543,26 @@ void rollext_state::machine_start()
}
-MACHINE_CONFIG_START(rollext_state::rollext)
- MCFG_DEVICE_ADD("maincpu", TMS32082_MP, 60000000)
- MCFG_DEVICE_PROGRAM_MAP(memmap)
- //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rollext_state, vblank_interrupt)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(rollext_state, irq1_line_assert, 60)
- //MCFG_DEVICE_PERIODIC_INT_DRIVER(rollext_state, irq3_line_assert, 500)
+void rollext_state::rollext(machine_config &config)
+{
+ TMS32082_MP(config, m_maincpu, 60000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rollext_state::memmap);
+ //m_maincpu->set_vblank_int("screen", FUNC(rollext_state::vblank_interrupt));
+ m_maincpu->set_periodic_int(FUNC(rollext_state::irq1_line_assert), attotime::from_hz(60));
+ //m_maincpu->set_periodic_int(FUNC(rollext_state::irq3_line_assert), attotime::from_hz(500));
- MCFG_DEVICE_ADD("pp0", TMS32082_PP, 60000000)
- MCFG_DEVICE_PROGRAM_MAP(memmap);
+ tms32082_pp_device &pp0(TMS32082_PP(config, "pp0", 60000000));
+ pp0.set_addrmap(AS_PROGRAM, &rollext_state::memmap);
config.m_minimum_quantum = attotime::from_hz(100);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(512, 384)
- MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
- MCFG_SCREEN_UPDATE_DRIVER(rollext_state, screen_update)
-MACHINE_CONFIG_END
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(512, 384);
+ m_screen->set_visarea(0, 511, 0, 383);
+ m_screen->set_screen_update(FUNC(rollext_state::screen_update));
+}
INTERRUPT_GEN_MEMBER(rollext_state::vblank_interrupt)
diff --git a/src/mame/drivers/rollrace.cpp b/src/mame/drivers/rollrace.cpp
index b9e4655c71c..b05c7776697 100644
--- a/src/mame/drivers/rollrace.cpp
+++ b/src/mame/drivers/rollrace.cpp
@@ -249,15 +249,15 @@ INTERRUPT_GEN_MEMBER(rollrace_state::sound_timer_irq)
device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-MACHINE_CONFIG_START(rollrace_state::rollrace)
-
+void rollrace_state::rollrace(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,XTAL(24'000'000)/8) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(rollrace_map)
+ Z80(config, m_maincpu, XTAL(24'000'000)/8); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &rollrace_state::rollrace_map);
- MCFG_DEVICE_ADD("audiocpu", Z80,XTAL(24'000'000)/16) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(rollrace_sound_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(rollrace_state, sound_timer_irq, 4*60)
+ z80_device &audiocpu(Z80(config, "audiocpu", XTAL(24'000'000)/16)); /* verified on pcb */
+ audiocpu.set_addrmap(AS_PROGRAM, &rollrace_state::rollrace_sound_map);
+ audiocpu.set_periodic_int(FUNC(rollrace_state::sound_timer_irq), attotime::from_hz(4*60));
ls259_device &mainlatch(LS259(config, "mainlatch"));
mainlatch.q_out_cb<0>().set(FUNC(rollrace_state::flipx_w));
@@ -269,14 +269,14 @@ MACHINE_CONFIG_START(rollrace_state::rollrace)
mainlatch.q_out_cb<6>().set(FUNC(rollrace_state::spritebank_w));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0,256-1,16, 255-16)
- MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rollrace_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 16, 255-16);
+ screen.set_screen_update(FUNC(rollrace_state::screen_update));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(rollrace_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rollrace);
PALETTE(config, m_palette, FUNC(rollrace_state::rollrace_palette), 256);
@@ -292,16 +292,16 @@ MACHINE_CONFIG_START(rollrace_state::rollrace)
AY8910(config, "ay2", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "rspeaker", 0.10); /* verified on pcb */
AY8910(config, "ay3", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "lspeaker", 0.10); /* verified on pcb */
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rollrace_state::rollace2)
+void rollrace_state::rollace2(machine_config &config)
+{
rollrace(config);
/* basic machine hardware */
-// MCFG_SCREEN_MODIFY("screen")
-// MCFG_SCREEN_VISIBLE_AREA(0,256-1,16, 255-16)
-MACHINE_CONFIG_END
+// subdevice<screen_device>("screen")->set_visarea(0, 256-1, 16, 255-16);
+}
/***************************************************************************
diff --git a/src/mame/drivers/ron.cpp b/src/mame/drivers/ron.cpp
index 2bade072443..a2f6d8d91b2 100644
--- a/src/mame/drivers/ron.cpp
+++ b/src/mame/drivers/ron.cpp
@@ -486,12 +486,12 @@ WRITE8_MEMBER(ron_state::ay_pa_w)
{
}
-MACHINE_CONFIG_START(ron_state::ron)
-
+void ron_state::ron(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CLOCK)
- MCFG_DEVICE_PROGRAM_MAP(ron_map)
- MCFG_DEVICE_IO_MAP(ron_io)
+ Z80(config, m_maincpu, MAIN_CLOCK);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ron_state::ron_map);
+ m_maincpu->set_addrmap(AS_IO, &ron_state::ron_io);
I8035(config, m_audiocpu, SOUND_CLOCK);
m_audiocpu->set_addrmap(AS_PROGRAM, &ron_state::ron_audio_map);
@@ -503,11 +503,11 @@ MACHINE_CONFIG_START(ron_state::ron)
m_audiocpu->t1_in_cb().set(FUNC(ron_state::audio_t1_r));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_UPDATE_DRIVER(ron_state, screen_update)
- MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 320, 0, 256, 264, 0, 240)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, ron_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_screen_update(FUNC(ron_state::screen_update));
+ screen.set_raw(VIDEO_CLOCK, 320, 0, 256, 264, 0, 240);
+ screen.set_palette("palette");
+ screen.screen_vblank().set(FUNC(ron_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, "palette", gfx_ron);
@@ -519,7 +519,7 @@ MACHINE_CONFIG_START(ron_state::ron)
AY8910(config, m_ay, 0); // T0 CLK from I8035 (not verified)
m_ay->add_route(ALL_OUTPUTS, "mono", 0.30);
m_ay->port_a_write_callback().set(FUNC(ron_state::ay_pa_w));
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/roul.cpp b/src/mame/drivers/roul.cpp
index 1857d4bb465..51e23dcbb38 100644
--- a/src/mame/drivers/roul.cpp
+++ b/src/mame/drivers/roul.cpp
@@ -312,27 +312,28 @@ static INPUT_PORTS_START( roul )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
-MACHINE_CONFIG_START(roul_state::roul)
+void roul_state::roul(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(roul_map)
- MCFG_DEVICE_IO_MAP(roul_cpu_io_map)
+ Z80(config, m_maincpu, 4000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &roul_state::roul_map);
+ m_maincpu->set_addrmap(AS_IO, &roul_state::roul_cpu_io_map);
- MCFG_DEVICE_ADD("soundcpu", Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_cpu_io_map)
+ Z80(config, m_soundcpu, 4000000);
+ m_soundcpu->set_addrmap(AS_PROGRAM, &roul_state::sound_map);
+ m_soundcpu->set_addrmap(AS_IO, &roul_state::sound_cpu_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(roul_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ 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(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(roul_state::screen_update));
+ screen.set_palette("palette");
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
PALETTE(config, "palette", FUNC(roul_state::roul_palette), 0x100);
@@ -341,7 +342,7 @@ MACHINE_CONFIG_START(roul_state::roul)
GENERIC_LATCH_8(config, m_soundlatch);
AY8910(config, "aysnd", 1000000).add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
ROM_START(roul)
ROM_REGION( 0x10000, "maincpu", 0 )
diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp
index d6d61f4ff71..e7911dd960b 100644
--- a/src/mame/drivers/royalmah.cpp
+++ b/src/mame/drivers/royalmah.cpp
@@ -3532,26 +3532,26 @@ static INPUT_PORTS_START( mjvegasa )
INPUT_PORTS_END
-MACHINE_CONFIG_START(royalmah_state::royalmah)
-
+void royalmah_state::royalmah(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, 18432000/6) /* 3.072 MHz */
- MCFG_DEVICE_PROGRAM_MAP(royalmah_map)
- MCFG_DEVICE_IO_MAP(royalmah_iomap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold)
+ Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::royalmah_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap);
+ m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
/* video hardware */
PALETTE(config, "palette", FUNC(royalmah_state::royalmah_palette), 16*4);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_DRIVER(royalmah_state, screen_update_royalmah)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 255, 8, 247);
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ screen.set_screen_update(FUNC(royalmah_state::screen_update_royalmah));
+ screen.set_palette("palette");
/* sound hardware */
SPEAKER(config, "speaker").front_center();
@@ -3560,32 +3560,32 @@ MACHINE_CONFIG_START(royalmah_state::royalmah)
m_ay->port_a_read_callback().set(FUNC(royalmah_state::player_1_port_r));
m_ay->port_b_read_callback().set(FUNC(royalmah_state::player_2_port_r));
m_ay->add_route(ALL_OUTPUTS, "speaker", 0.33);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::janoh)
+void royalmah_state::janoh(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(janoh_map)
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::janoh_map);
- MCFG_DEVICE_ADD("sub", Z80, 4000000) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(janoh_sub_map)
- MCFG_DEVICE_IO_MAP(janoh_sub_iomap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold)
-MACHINE_CONFIG_END
+ z80_device &sub(Z80(config, "sub", 4000000)); /* 4 MHz ? */
+ sub.set_addrmap(AS_PROGRAM, &royalmah_state::janoh_sub_map);
+ sub.set_addrmap(AS_IO, &royalmah_state::janoh_sub_iomap);
+ sub.set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold));
+}
-MACHINE_CONFIG_START(royalmah_state::jansou)
+void royalmah_state::jansou(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(jansou_map)
- MCFG_DEVICE_IO_MAP(royalmah_iomap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap);
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4.000 MHz */
- MCFG_DEVICE_PROGRAM_MAP(jansou_sub_map)
- MCFG_DEVICE_IO_MAP(jansou_sub_iomap)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(royalmah_state, irq0_line_hold, 4000000/512)
+ Z80(config, m_audiocpu, 4000000); /* 4.000 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_sub_map);
+ m_audiocpu->set_addrmap(AS_IO, &royalmah_state::jansou_sub_iomap);
+ m_audiocpu->set_periodic_int(FUNC(royalmah_state::irq0_line_hold), attotime::from_hz(4000000/512));
GENERIC_LATCH_8(config, m_soundlatch);
@@ -3593,74 +3593,74 @@ MACHINE_CONFIG_START(royalmah_state::jansou)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::dondenmj)
+void royalmah_state::dondenmj(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(dondenmj_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::dondenmj_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::tahjong)
+void royalmah_state::tahjong(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_PROGRAM_MAP(tahjong_map)
- MCFG_DEVICE_IO_MAP(tahjong_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::tahjong_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::tahjong_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::makaijan)
+void royalmah_state::makaijan(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(makaijan_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::makaijan_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::daisyari)
+void royalmah_state::daisyari(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(daisyari_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::daisyari_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjclub)
+void royalmah_state::mjclub(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */
- MCFG_DEVICE_IO_MAP(mjclub_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_clock(8000000/2); /* 4 MHz ? */
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjclub_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjyarou)
+void royalmah_state::mjyarou(machine_config &config)
+{
royalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjyarou_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjyarou_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::ippatsu)
+void royalmah_state::ippatsu(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(ippatsu_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::ippatsu_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::janyoup2)
+void royalmah_state::janyoup2(machine_config &config)
+{
ippatsu(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(XTAL(18'432'000)/4) // unknown divider
- MCFG_DEVICE_IO_MAP(janyoup2_iomap)
+ m_maincpu->set_clock(XTAL(18'432'000)/4); // unknown divider
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::janyoup2_iomap);
h46505_device &crtc(H46505(config, "crtc", XTAL(18'432'000)/12)); // unknown divider
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(4);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::seljan)
+void royalmah_state::seljan(machine_config &config)
+{
janyoup2(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(seljan_map)
- MCFG_DEVICE_IO_MAP(seljan_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::seljan_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::seljan_iomap);
+}
INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq)
{
@@ -3668,12 +3668,12 @@ INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq)
device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-MACHINE_CONFIG_START(royalmah_state::suzume)
+void royalmah_state::suzume(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(suzume_iomap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, suzume_irq)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::suzume_iomap);
+ m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::suzume_irq));
+}
void royalmah_state::jongshin(machine_config &config)
{
@@ -3681,41 +3681,41 @@ void royalmah_state::jongshin(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &royalmah_state::jongshin_iomap);
}
-MACHINE_CONFIG_START(royalmah_state::tontonb)
+void royalmah_state::tontonb(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(tontonb_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::tontonb_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjdiplob)
+void royalmah_state::mjdiplob(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjdiplob_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjdiplob_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::majs101b)
+void royalmah_state::majs101b(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(majs101b_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::majs101b_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjapinky)
+void royalmah_state::mjapinky(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mjapinky_map)
- MCFG_DEVICE_IO_MAP(mjapinky_iomap)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::mjapinky_map);
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjapinky_iomap);
+}
-MACHINE_CONFIG_START(royalmah_state::mjderngr)
+void royalmah_state::mjderngr(machine_config &config)
+{
dondenmj(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjderngr_iomap)
+ m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjderngr_iomap);
/* video hardware */
auto &palette(*subdevice<palette_device>("palette"));
palette.set_entries(16*32);
palette.set_init(FUNC(royalmah_state::mjderngr_palette));
-MACHINE_CONFIG_END
+}
void royalmah_state::janptr96(machine_config &config)
{
@@ -3737,7 +3737,8 @@ void royalmah_state::janptr96(machine_config &config)
}
-MACHINE_CONFIG_START(royalmah_state::mjifb)
+void royalmah_state::mjifb(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjifb_map);
@@ -3750,13 +3751,14 @@ MACHINE_CONFIG_START(royalmah_state::mjifb)
tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r));
tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+}
-MACHINE_CONFIG_START(royalmah_state::mjdejavu)
+void royalmah_state::mjdejavu(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjdejavu_map);
@@ -3769,43 +3771,46 @@ MACHINE_CONFIG_START(royalmah_state::mjdejavu)
tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r));
tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
-MACHINE_CONFIG_END
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+}
-MACHINE_CONFIG_START(royalmah_state::mjtensin)
+void royalmah_state::mjtensin(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjtensin_map);
tmp.port_read<3>().set(FUNC(royalmah_state::mjtensin_p3_r));
tmp.port_write<4>().set(FUNC(royalmah_state::mjtensin_p4_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::cafetime)
+void royalmah_state::cafetime(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::cafetime_map);
tmp.port_write<3>().set(FUNC(royalmah_state::cafetime_p3_w));
tmp.port_write<4>().set(FUNC(royalmah_state::cafetime_p4_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(royalmah_state::mjvegasa)
+void royalmah_state::mjvegasa(machine_config &config)
+{
mjderngr(config);
tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, XTAL(8'000'000))); /* ? */
tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjvegasa_map);
@@ -3813,13 +3818,13 @@ MACHINE_CONFIG_START(royalmah_state::mjvegasa)
tmp.port_write<3>().set(FUNC(royalmah_state::mjvegasa_p3_w));
tmp.port_write<4>().set(FUNC(royalmah_state::mjvegasa_p4_w));
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ screen_device &screen(*subdevice<screen_device>("screen"));
+ screen.set_visarea(0, 255, 8, 255-8);
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
/* devices */
MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/rpunch.cpp b/src/mame/drivers/rpunch.cpp
index 6b16c5bd4d5..2e2b36e2ac7 100644
--- a/src/mame/drivers/rpunch.cpp
+++ b/src/mame/drivers/rpunch.cpp
@@ -457,14 +457,14 @@ GFXDECODE_END
*
*************************************/
-MACHINE_CONFIG_START(rpunch_state::rpunch)
-
+void rpunch_state::rpunch(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, MASTER_CLOCK/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rpunch_state::main_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ Z80(config, m_audiocpu, MASTER_CLOCK/4);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rpunch_state::sound_map);
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set("soundirq", FUNC(input_merger_device::in_w<0>));
@@ -472,12 +472,12 @@ MACHINE_CONFIG_START(rpunch_state::rpunch)
INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(304, 224)
- MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8)
- MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(304, 224);
+ m_screen->set_visarea(8, 303-8, 0, 223-8);
+ m_screen->set_screen_update(FUNC(rpunch_state::screen_update_rpunch));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rpunch);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
@@ -495,25 +495,25 @@ MACHINE_CONFIG_START(rpunch_state::rpunch)
ymsnd.add_route(0, "mono", 0.50);
ymsnd.add_route(1, "mono", 0.50);
- MCFG_DEVICE_ADD("upd", UPD7759)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50);
+}
-MACHINE_CONFIG_START(rpunch_state::svolley)
+void rpunch_state::svolley(machine_config &config)
+{
rpunch(config);
MCFG_VIDEO_START_OVERRIDE(rpunch_state,svolley)
-MACHINE_CONFIG_END
+}
// c+p of above for now, bootleg hw, things need verifying
-MACHINE_CONFIG_START(rpunch_state::svolleybl)
-
+void rpunch_state::svolleybl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
+ M68000(config, m_maincpu, MASTER_CLOCK/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rpunch_state::main_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ Z80(config, m_audiocpu, MASTER_CLOCK/4);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &rpunch_state::sound_map);
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set("soundirq", FUNC(input_merger_device::in_w<0>));
@@ -521,12 +521,12 @@ MACHINE_CONFIG_START(rpunch_state::svolleybl)
INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_SIZE(304, 224)
- MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8)
- MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_size(304, 224);
+ m_screen->set_visarea(8, 303-8, 0, 223-8);
+ m_screen->set_screen_update(FUNC(rpunch_state::screen_update_rpunch));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_svolleybl);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024);
@@ -545,9 +545,8 @@ MACHINE_CONFIG_START(rpunch_state::svolleybl)
ymsnd.add_route(0, "mono", 0.50);
ymsnd.add_route(1, "mono", 0.50);
- MCFG_DEVICE_ADD("upd", UPD7759)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50);
+}
diff --git a/src/mame/drivers/rt1715.cpp b/src/mame/drivers/rt1715.cpp
index 376471eb391..ce780064f3c 100644
--- a/src/mame/drivers/rt1715.cpp
+++ b/src/mame/drivers/rt1715.cpp
@@ -284,7 +284,8 @@ static const z80_daisy_config rt1715_daisy_chain[] =
{ nullptr }
};
-MACHINE_CONFIG_START(rt1715_state::rt1715)
+void rt1715_state::rt1715(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, 9.832_MHz_XTAL / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &rt1715_state::rt1715_mem);
@@ -292,14 +293,14 @@ MACHINE_CONFIG_START(rt1715_state::rt1715)
m_maincpu->set_daisy_config(rt1715_daisy_chain);
/* keyboard */
- MCFG_DEVICE_ADD("keyboard", Z80, 683000)
- MCFG_DEVICE_PROGRAM_MAP(k7658_mem)
- MCFG_DEVICE_IO_MAP(k7658_io)
+ z80_device &keyboard(Z80(config, "keyboard", 683000));
+ keyboard.set_addrmap(AS_PROGRAM, &rt1715_state::k7658_mem);
+ keyboard.set_addrmap(AS_IO, &rt1715_state::k7658_io);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_UPDATE_DEVICE("a26", i8275_device, screen_update)
- MCFG_SCREEN_RAW_PARAMS(13.824_MHz_XTAL, 864, 0, 624, 320, 0, 300) // ?
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_screen_update("a26", FUNC(i8275_device::screen_update));
+ screen.set_raw(13.824_MHz_XTAL, 864, 0, 624, 320, 0, 300); // ?
GFXDECODE(config, "gfxdecode", "palette", gfx_rt1715);
PALETTE(config, "palette", FUNC(rt1715_state::rt1715_palette), 3);
@@ -320,11 +321,12 @@ MACHINE_CONFIG_START(rt1715_state::rt1715)
/* internal ram */
RAM(config, RAM_TAG).set_default_size("64K").set_default_value(0x00);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(rt1715_state::rt1715w)
+void rt1715_state::rt1715w(machine_config &config)
+{
rt1715(config);
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp
index 716d9bd0435..c6002549395 100644
--- a/src/mame/drivers/rx78.cpp
+++ b/src/mame/drivers/rx78.cpp
@@ -472,24 +472,23 @@ GFXDECODE_END
MACHINE_CONFIG_START(rx78_state::rx78)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, MASTER_CLOCK/7) // unknown divider
- MCFG_DEVICE_PROGRAM_MAP(rx78_mem)
- MCFG_DEVICE_IO_MAP(rx78_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rx78_state, irq0_line_hold)
+ Z80(config, m_maincpu, MASTER_CLOCK/7); // unknown divider
+ m_maincpu->set_addrmap(AS_PROGRAM, &rx78_state::rx78_mem);
+ m_maincpu->set_addrmap(AS_IO, &rx78_state::rx78_io);
+ m_maincpu->set_vblank_int("screen", FUNC(rx78_state::irq0_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
-// MCFG_SCREEN_REFRESH_RATE(60)
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
-// MCFG_SCREEN_SIZE(192, 184)
-// MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 184-1)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+// screen.set_refresh_hz(60);
+// screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+// screen.set_size(192, 184);
+// screen.set_visarea(0, 192-1, 0, 184-1);
/* guess: generic NTSC video timing at 256x224, system runs at 192x184, suppose with some border area to compensate */
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 442, 0, 256, 263, 0, 224)
- MCFG_SCREEN_UPDATE_DRIVER(rx78_state, screen_update)
+ screen.set_raw(MASTER_CLOCK/4, 442, 0, 256, 263, 0, 224);
+ screen.set_screen_update(FUNC(rx78_state::screen_update));
+ screen.set_palette("palette");
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_PALETTE_ADD("palette", 16+1) //+1 for the background color
+ PALETTE(config, m_palette).set_entries(16+1); //+1 for the background color
GFXDECODE(config, "gfxdecode", m_palette, gfx_rx78);
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "rx78_cart")
@@ -504,8 +503,7 @@ MACHINE_CONFIG_START(rx78_state::rx78)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
- MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(28'636'363)/8) // unknown divider
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ SN76489A(config, "sn1", XTAL(28'636'363)/8).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown divider
/* Software lists */
SOFTWARE_LIST(config, "cart_list").set_original("rx78");
diff --git a/src/mame/drivers/rzone.cpp b/src/mame/drivers/rzone.cpp
index 0052aa75c23..53305092ea2 100644
--- a/src/mame/drivers/rzone.cpp
+++ b/src/mame/drivers/rzone.cpp
@@ -242,8 +242,8 @@ INPUT_PORTS_END
***************************************************************************/
-MACHINE_CONFIG_START(rzone_state::rzbatfor)
-
+void rzone_state::rzbatfor(machine_config &config)
+{
/* basic machine hardware */
SM512(config, m_maincpu); // no external XTAL
m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w));
@@ -252,10 +252,10 @@ MACHINE_CONFIG_START(rzone_state::rzbatfor)
m_maincpu->write_r().set(FUNC(rzone_state::t2_write_r));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1368, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1368-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(1368, 1080);
+ screen.set_visarea(0, 1368-1, 0, 1080-1);
TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback));
TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
@@ -263,12 +263,11 @@ MACHINE_CONFIG_START(rzone_state::rzbatfor)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(rzone_state::rztoshden)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+void rzone_state::rztoshden(machine_config &config)
+{
/* basic machine hardware */
SM510(config, m_maincpu);
m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT);
@@ -278,10 +277,10 @@ MACHINE_CONFIG_START(rzone_state::rztoshden)
m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1392, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1392-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(1392, 1080);
+ screen.set_visarea(0, 1392-1, 0, 1080-1);
TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback));
TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
@@ -289,12 +288,11 @@ MACHINE_CONFIG_START(rzone_state::rztoshden)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(rzone_state::rzindy500)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+void rzone_state::rzindy500(machine_config &config)
+{
/* basic machine hardware */
SM510(config, m_maincpu); // no external XTAL
m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed
@@ -304,10 +302,10 @@ MACHINE_CONFIG_START(rzone_state::rzindy500)
m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r));
/* video hardware */
- MCFG_SCREEN_SVG_ADD("screen", "svg")
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_SIZE(1425, 1080)
- MCFG_SCREEN_VISIBLE_AREA(0, 1425-1, 0, 1080-1)
+ screen_device &screen(SCREEN(config, "screen", "svg"));
+ screen.set_refresh_hz(50);
+ screen.set_size(1425, 1080);
+ screen.set_visarea(0, 1425-1, 0, 1080-1);
TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback));
TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1));
@@ -315,9 +313,8 @@ MACHINE_CONFIG_START(rzone_state::rzindy500)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+}