summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/bus/abckb/abc99.cpp2
-rw-r--r--src/devices/bus/vip/vp550.cpp2
-rw-r--r--src/devices/bus/vip/vp575.cpp2
-rw-r--r--src/devices/bus/vip/vp590.cpp2
-rw-r--r--src/devices/bus/vip/vp595.cpp2
-rw-r--r--src/devices/bus/vip/vp620.cpp2
-rw-r--r--src/devices/bus/wangpc/lvc.cpp2
-rw-r--r--src/devices/bus/wangpc/mcc.cpp2
-rw-r--r--src/devices/bus/wangpc/mvc.cpp2
-rw-r--r--src/devices/bus/wangpc/tig.cpp2
-rw-r--r--src/devices/bus/wangpc/wdc.cpp2
-rw-r--r--src/devices/imagedev/mfmhd.cpp2
-rw-r--r--src/devices/video/tms9927.cpp2
-rw-r--r--src/mame/drivers/jack.cpp79
-rw-r--r--src/mame/drivers/jackal.cpp30
-rw-r--r--src/mame/drivers/jackpool.cpp28
-rw-r--r--src/mame/drivers/jailbrek.cpp31
-rw-r--r--src/mame/drivers/jalmah.cpp48
-rw-r--r--src/mame/drivers/jangou.cpp4
-rw-r--r--src/mame/drivers/jchan.cpp36
-rw-r--r--src/mame/drivers/jclub2.cpp80
-rw-r--r--src/mame/drivers/jeutel.cpp29
-rw-r--r--src/mame/drivers/jokrwild.cpp25
-rw-r--r--src/mame/drivers/jollyjgr.cpp34
-rw-r--r--src/mame/drivers/jongkyo.cpp20
-rw-r--r--src/mame/drivers/jonos.cpp23
-rw-r--r--src/mame/drivers/joystand.cpp30
-rw-r--r--src/mame/drivers/jpmimpct.cpp35
-rw-r--r--src/mame/drivers/jpmsru.cpp10
-rw-r--r--src/mame/drivers/jpmsys5.cpp19
-rw-r--r--src/mame/drivers/jpmsys7.cpp9
-rw-r--r--src/mame/drivers/jr200.cpp28
-rw-r--r--src/mame/drivers/jtc.cpp62
-rw-r--r--src/mame/drivers/jubilee.cpp22
-rw-r--r--src/mame/drivers/juicebox.cpp24
-rw-r--r--src/mame/drivers/jungleyo.cpp32
-rw-r--r--src/mame/drivers/jupace.cpp16
-rw-r--r--src/mame/drivers/jupiter.cpp29
-rw-r--r--src/mame/drivers/k1003.cpp11
-rw-r--r--src/mame/drivers/kaneko16.cpp171
-rw-r--r--src/mame/drivers/kangaroo.cpp36
-rw-r--r--src/mame/drivers/kas89.cpp18
-rw-r--r--src/mame/drivers/kaypro.cpp21
-rw-r--r--src/mame/drivers/kickgoal.cpp68
-rw-r--r--src/mame/drivers/kingdrby.cpp69
-rw-r--r--src/mame/drivers/kingobox.cpp44
-rw-r--r--src/mame/drivers/kncljoe.cpp34
-rw-r--r--src/mame/drivers/koftball.cpp37
-rw-r--r--src/mame/drivers/koikoi.cpp28
-rw-r--r--src/mame/drivers/konamigv.cpp32
-rw-r--r--src/mame/drivers/konamigx.cpp2
-rw-r--r--src/mame/drivers/konendev.cpp31
-rw-r--r--src/mame/drivers/konmedal68k.cpp29
-rw-r--r--src/mame/drivers/kontest.cpp32
-rw-r--r--src/mame/drivers/kopunch.cpp28
-rw-r--r--src/mame/drivers/kramermc.cpp26
-rw-r--r--src/mame/drivers/ksayakyu.cpp32
-rw-r--r--src/mame/drivers/kyugo.cpp84
-rw-r--r--src/mame/includes/jpmsys5.h2
59 files changed, 828 insertions, 816 deletions
diff --git a/src/devices/bus/abckb/abc99.cpp b/src/devices/bus/abckb/abc99.cpp
index 6782fbd8a59..4b49e73548e 100644
--- a/src/devices/bus/abckb/abc99.cpp
+++ b/src/devices/bus/abckb/abc99.cpp
@@ -169,7 +169,7 @@ void abc99_device::device_add_mconfig(machine_config &config)
m_mousecpu->set_addrmap(AS_PROGRAM, &abc99_device::abc99_z5_mem);
//m_mousecpu->p1_in_cb().set(FUNC(abc99_device::z5_p1_r));
//m_mousecpu->p2_out_cb().set(FUNC(abc99_device::z5_p2_w));
- //MCFG_MCS48_PORT_T0_CLK_CUSTOM() // Z2 CLK
+ //m_mousecpu->set_t0_clk_cb(); // Z2 CLK
//m_mousecpu->t1_in_cb().set(FUNC(abc99_device::z5_t1_r));
m_mousecpu->set_disable(); // HACK fix for broken serial I/O
diff --git a/src/devices/bus/vip/vp550.cpp b/src/devices/bus/vip/vp550.cpp
index 48b666a3714..6d1e36f57d7 100644
--- a/src/devices/bus/vip/vp550.cpp
+++ b/src/devices/bus/vip/vp550.cpp
@@ -47,7 +47,7 @@ DEFINE_DEVICE_TYPE(VP550, vp550_device, "vp550", "VP-550 Super Sound")
//-------------------------------------------------
-// MACHINE_CONFIG_START( vp550 )
+// machine_config( vp550 )
//-------------------------------------------------
void vp550_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/vip/vp575.cpp b/src/devices/bus/vip/vp575.cpp
index 40b3b992dc9..685c05be7c6 100644
--- a/src/devices/bus/vip/vp575.cpp
+++ b/src/devices/bus/vip/vp575.cpp
@@ -42,7 +42,7 @@ void vp575_device::update_interrupts()
//-------------------------------------------------
-// MACHINE_CONFIG_START( vp575 )
+// machine_config( vp575 )
//-------------------------------------------------
void vp575_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/vip/vp590.cpp b/src/devices/bus/vip/vp590.cpp
index 85ea459dcdc..3fd9185c5d1 100644
--- a/src/devices/bus/vip/vp590.cpp
+++ b/src/devices/bus/vip/vp590.cpp
@@ -50,7 +50,7 @@ READ_LINE_MEMBER( vp590_device::gd_r )
//-------------------------------------------------
-// MACHINE_CONFIG_START( vp590 )
+// machine_config( vp590 )
//-------------------------------------------------
void vp590_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/vip/vp595.cpp b/src/devices/bus/vip/vp595.cpp
index e7fe7c64c44..1dab7f4a49f 100644
--- a/src/devices/bus/vip/vp595.cpp
+++ b/src/devices/bus/vip/vp595.cpp
@@ -30,7 +30,7 @@ DEFINE_DEVICE_TYPE(VP595, vp595_device, "vp595", "VP-595 Simple Sound")
//-------------------------------------------------
-// MACHINE_CONFIG_START( vp595 )
+// machine_config( vp595 )
//-------------------------------------------------
void vp595_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/vip/vp620.cpp b/src/devices/bus/vip/vp620.cpp
index 643a8856481..ba6a938f660 100644
--- a/src/devices/bus/vip/vp620.cpp
+++ b/src/devices/bus/vip/vp620.cpp
@@ -33,7 +33,7 @@ void vp620_device::kb_w(uint8_t data)
}
//-------------------------------------------------
-// MACHINE_CONFIG_START( vp620 )
+// machine_config( vp620 )
//-------------------------------------------------
void vp620_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/wangpc/lvc.cpp b/src/devices/bus/wangpc/lvc.cpp
index 60ec03e5674..0d316e5b15b 100644
--- a/src/devices/bus/wangpc/lvc.cpp
+++ b/src/devices/bus/wangpc/lvc.cpp
@@ -113,7 +113,7 @@ WRITE_LINE_MEMBER( wangpc_lvc_device::vsync_w )
}
//-------------------------------------------------
-// MACHINE_CONFIG_START( wangpc_lvc )
+// machine_config( wangpc_lvc )
//-------------------------------------------------
void wangpc_lvc_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/wangpc/mcc.cpp b/src/devices/bus/wangpc/mcc.cpp
index 5f483cee5fd..5b029ed38d2 100644
--- a/src/devices/bus/wangpc/mcc.cpp
+++ b/src/devices/bus/wangpc/mcc.cpp
@@ -52,7 +52,7 @@ DEFINE_DEVICE_TYPE(WANGPC_MCC, wangpc_mcc_device, "wangpc_mcc", "Wang PC-PM043 M
//-------------------------------------------------
-// MACHINE_CONFIG_START( wangpc_mcc )
+// machine_config( wangpc_mcc )
//-------------------------------------------------
void wangpc_mcc_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/wangpc/mvc.cpp b/src/devices/bus/wangpc/mvc.cpp
index fbe4db1fe4a..af78d16cc29 100644
--- a/src/devices/bus/wangpc/mvc.cpp
+++ b/src/devices/bus/wangpc/mvc.cpp
@@ -133,7 +133,7 @@ WRITE_LINE_MEMBER( wangpc_mvc_device::vsync_w )
}
//-------------------------------------------------
-// MACHINE_CONFIG_START( wangpc_mvc )
+// machine_config( wangpc_mvc )
//-------------------------------------------------
void wangpc_mvc_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/wangpc/tig.cpp b/src/devices/bus/wangpc/tig.cpp
index fa18e4189ce..f0c00ed3cc3 100644
--- a/src/devices/bus/wangpc/tig.cpp
+++ b/src/devices/bus/wangpc/tig.cpp
@@ -111,7 +111,7 @@ UPD7220_DISPLAY_PIXELS_MEMBER( wangpc_tig_device::hgdc_display_pixels )
//-------------------------------------------------
-// MACHINE_CONFIG_START( wangpc_tig )
+// machine_config( wangpc_tig )
//-------------------------------------------------
void wangpc_tig_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/bus/wangpc/wdc.cpp b/src/devices/bus/wangpc/wdc.cpp
index 0f2598541ce..2ad74d8c8fd 100644
--- a/src/devices/bus/wangpc/wdc.cpp
+++ b/src/devices/bus/wangpc/wdc.cpp
@@ -89,7 +89,7 @@ void wangpc_wdc_device::wangpc_wdc_io(address_map &map)
//-------------------------------------------------
-// MACHINE_CONFIG_START( wangpc_wdc )
+// machine_config( wangpc_wdc )
//-------------------------------------------------
void wangpc_wdc_device::device_add_mconfig(machine_config &config)
diff --git a/src/devices/imagedev/mfmhd.cpp b/src/devices/imagedev/mfmhd.cpp
index 6e95fcc9e64..1d6d3574c07 100644
--- a/src/devices/imagedev/mfmhd.cpp
+++ b/src/devices/imagedev/mfmhd.cpp
@@ -205,7 +205,7 @@
This means that when we add a slot (the connector), we also have to
pass the desired parameters for the drive.
- MCFG_MFM_HARDDISK_CONN_ADD(_tag, _slot_intf, _def_slot, _enc, _spinupms, _cache, _format)
+ MFM_HD_CONNECTOR(config, _tag, _slot_intf, _def_slot, _enc, _spinupms, _cache, _format);
Specific parameters:
diff --git a/src/devices/video/tms9927.cpp b/src/devices/video/tms9927.cpp
index 9a43cb1f635..bc8e187f8e8 100644
--- a/src/devices/video/tms9927.cpp
+++ b/src/devices/video/tms9927.cpp
@@ -81,7 +81,7 @@ crt5057_device::crt5057_device(const machine_config &mconfig, const char *tag, d
void tms9927_device::device_start()
{
assert(clock() > 0);
- if (!(m_hpixels_per_column > 0)) fatalerror("TMS9927: number of pixels per column must be explicitly set using MCFG_TMS9927_CHAR_WIDTH()!\n");
+ if (!(m_hpixels_per_column > 0)) fatalerror("TMS9927: number of pixels per column must be explicitly set using set_char_width()!\n");
// resolve callbacks
m_write_vsyn.resolve_safe();
diff --git a/src/mame/drivers/jack.cpp b/src/mame/drivers/jack.cpp
index 3addd7185b3..8e88f0c8440 100644
--- a/src/mame/drivers/jack.cpp
+++ b/src/mame/drivers/jack.cpp
@@ -910,26 +910,26 @@ MACHINE_RESET_MEMBER(jack_state,joinem)
/***************************************************************/
-MACHINE_CONFIG_START(jack_state::jack)
-
+void jack_state::jack(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'000'000)/6)
- MCFG_DEVICE_PROGRAM_MAP(jack_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jack_state, irq0_line_hold)
+ Z80(config, m_maincpu, XTAL(18'000'000)/6);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jack_state::jack_map);
+ m_maincpu->set_vblank_int("screen", FUNC(jack_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(18'000'000)/6)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_io_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(jack_state, jack_sh_irq_ack)
+ Z80(config, m_audiocpu, XTAL(18'000'000)/6);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &jack_state::sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &jack_state::sound_io_map);
+ m_audiocpu->set_irq_acknowledge_callback(FUNC(jack_state::jack_sh_irq_ack));
/* 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(jack_state, screen_update_jack)
- 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(jack_state::screen_update_jack));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jack);
PALETTE(config, m_palette).set_format(palette_device::BGR_233_inverted, 32);
@@ -944,29 +944,28 @@ MACHINE_CONFIG_START(jack_state::jack)
aysnd.port_a_read_callback().set(m_soundlatch, FUNC(generic_latch_8_device::read));
aysnd.port_b_read_callback().set(FUNC(jack_state::timer_r));
aysnd.add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(jack_state::treahunt)
+void jack_state::treahunt(machine_config &config)
+{
jack(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_OPCODES, &jack_state::decrypted_opcodes_map);
+}
-MACHINE_CONFIG_START(jack_state::striv)
+void jack_state::striv(machine_config &config)
+{
jack(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(striv_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &jack_state::striv_map);
MCFG_MACHINE_START_OVERRIDE(jack_state,striv)
MCFG_MACHINE_RESET_OVERRIDE(jack_state,striv)
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_striv)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(jack_state::screen_update_striv));
+}
/***************************************************************/
@@ -977,43 +976,41 @@ INTERRUPT_GEN_MEMBER(jack_state::joinem_vblank_irq)
device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-MACHINE_CONFIG_START(jack_state::joinem)
+void jack_state::joinem(machine_config &config)
+{
jack(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(joinem_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jack_state, joinem_vblank_irq)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(jack_state, irq0_line_hold, 250) // ??? controls game speed
+ m_maincpu->set_addrmap(AS_PROGRAM, &jack_state::joinem_map);
+ m_maincpu->set_vblank_int("screen", FUNC(jack_state::joinem_vblank_irq));
+ m_maincpu->set_periodic_int(FUNC(jack_state::irq0_line_hold), attotime::from_hz(250)); // ??? controls game speed
MCFG_MACHINE_START_OVERRIDE(jack_state,joinem)
MCFG_MACHINE_RESET_OVERRIDE(jack_state,joinem)
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem)
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(jack_state::screen_update_joinem));
m_gfxdecode->set_info(gfx_joinem);
PALETTE(config.replace(), m_palette, FUNC(jack_state::joinem_palette), 64);
MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(jack_state::unclepoo)
+void jack_state::unclepoo(machine_config &config)
+{
joinem(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(unclepoo_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &jack_state::unclepoo_map);
/* video hardware */
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
+ subdevice<screen_device>("screen")->set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
m_palette->set_entries(256);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/jackal.cpp b/src/mame/drivers/jackal.cpp
index 5adb580f073..7b1cbfb2ce1 100644
--- a/src/mame/drivers/jackal.cpp
+++ b/src/mame/drivers/jackal.cpp
@@ -357,28 +357,28 @@ void jackal_state::machine_reset()
m_irq_enable = 0;
}
-MACHINE_CONFIG_START(jackal_state::jackal)
-
+void jackal_state::jackal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("master", MC6809E, MASTER_CLOCK/12) // verified on pcb
- MCFG_DEVICE_PROGRAM_MAP(master_map)
+ MC6809E(config, m_mastercpu, MASTER_CLOCK/12); // verified on pcb
+ m_mastercpu->set_addrmap(AS_PROGRAM, &jackal_state::master_map);
- MCFG_DEVICE_ADD("slave", MC6809E, MASTER_CLOCK/12) // verified on pcb
- MCFG_DEVICE_PROGRAM_MAP(slave_map)
+ MC6809E(config, m_slavecpu, MASTER_CLOCK/12); // verified on pcb
+ m_slavecpu->set_addrmap(AS_PROGRAM, &jackal_state::slave_map);
config.m_minimum_quantum = attotime::from_hz(6000);
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(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(jackal_state, screen_update_jackal)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, jackal_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(1*8, 31*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(jackal_state::screen_update_jackal));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(jackal_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jackal);
PALETTE(config, m_palette, FUNC(jackal_state::jackal_palette));
@@ -390,7 +390,7 @@ MACHINE_CONFIG_START(jackal_state::jackal)
SPEAKER(config, "rspeaker").front_right();
YM2151(config, "ymsnd", SOUND_CLOCK).add_route(0, "lspeaker", 0.50).add_route(1, "rspeaker", 0.50); // verified on pcb
-MACHINE_CONFIG_END
+}
/*************************************
*
diff --git a/src/mame/drivers/jackpool.cpp b/src/mame/drivers/jackpool.cpp
index 4b8800b9a16..2946a84c8ab 100644
--- a/src/mame/drivers/jackpool.cpp
+++ b/src/mame/drivers/jackpool.cpp
@@ -233,20 +233,21 @@ INTERRUPT_GEN_MEMBER(jackpool_state::jackpool_interrupt)
}
-MACHINE_CONFIG_START(jackpool_state::jackpool)
- MCFG_DEVICE_ADD("maincpu", M68000, 12000000) // ?
- MCFG_DEVICE_PROGRAM_MAP(jackpool_mem)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jackpool_state, jackpool_interrupt) // ?
+void jackpool_state::jackpool(machine_config &config)
+{
+ M68000(config, m_maincpu, 12000000); // ?
+ m_maincpu->set_addrmap(AS_PROGRAM, &jackpool_state::jackpool_mem);
+ m_maincpu->set_vblank_int("screen", FUNC(jackpool_state::jackpool_interrupt)); // ?
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jackpool);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_SIZE(64*8, 64*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(jackpool_state, screen_update_jackpool)
- 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_size(64*8, 64*8);
+ screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(jackpool_state::screen_update_jackpool));
+ screen.set_palette(m_palette);
ls259_device &latch1(LS259(config, "latch1"));
latch1.q_out_cb<0>().set_nop(); // HOLD3 lamp
@@ -277,9 +278,8 @@ MACHINE_CONFIG_START(jackpool_state::jackpool)
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", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified
+}
ROM_START( jackpool )
diff --git a/src/mame/drivers/jailbrek.cpp b/src/mame/drivers/jailbrek.cpp
index cae5ca8996b..9f99ca04ff3 100644
--- a/src/mame/drivers/jailbrek.cpp
+++ b/src/mame/drivers/jailbrek.cpp
@@ -261,12 +261,12 @@ void jailbrek_state::machine_reset()
m_nmi_enable = 0;
}
-MACHINE_CONFIG_START(jailbrek_state::jailbrek)
-
+void jailbrek_state::jailbrek(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", KONAMI1, MASTER_CLOCK/12)
- MCFG_DEVICE_PROGRAM_MAP(jailbrek_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(jailbrek_state, interrupt_nmi, 500) /* ? */
+ KONAMI1(config, m_maincpu, MASTER_CLOCK/12);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jailbrek_state::jailbrek_map);
+ m_maincpu->set_periodic_int(FUNC(jailbrek_state::interrupt_nmi), attotime::from_hz(500)); /* ? */
WATCHDOG_TIMER(config, "watchdog");
@@ -274,22 +274,21 @@ MACHINE_CONFIG_START(jailbrek_state::jailbrek)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jailbrek);
PALETTE(config, m_palette, FUNC(jailbrek_state::jailbrek_palette), 512, 32);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 396, 8, 248, 256, 16, 240)
- MCFG_SCREEN_UPDATE_DRIVER(jailbrek_state, screen_update)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, jailbrek_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(MASTER_CLOCK/3, 396, 8, 248, 256, 16, 240);
+ screen.set_screen_update(FUNC(jailbrek_state::screen_update));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(jailbrek_state::vblank_irq));
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("snsnd", SN76489A, MASTER_CLOCK/12)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ SN76489A(config, "snsnd", MASTER_CLOCK/12).add_route(ALL_OUTPUTS, "mono", 1.0);
- MCFG_DEVICE_ADD("vlm", VLM5030, VOICE_CLOCK)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, vlm_map)
-MACHINE_CONFIG_END
+ VLM5030(config, m_vlm, VOICE_CLOCK);
+ m_vlm->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_vlm->set_addrmap(0, &jailbrek_state::vlm_map);
+}
/***************************************************************************
diff --git a/src/mame/drivers/jalmah.cpp b/src/mame/drivers/jalmah.cpp
index c501cc106c0..02bad953018 100644
--- a/src/mame/drivers/jalmah.cpp
+++ b/src/mame/drivers/jalmah.cpp
@@ -123,10 +123,10 @@ class jalmah_state : public driver_device
public:
jalmah_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
m_palette(*this, "palette"),
m_tmap(*this, "scroll%u", 0),
m_sharedram(*this, "sharedram"),
- m_maincpu(*this, "maincpu"),
m_prirom(*this, "prirom"),
m_p1_key_io(*this, "P1_KEY%u", 0U),
m_p2_key_io(*this, "P2_KEY%u", 0U),
@@ -170,6 +170,7 @@ protected:
virtual void machine_reset() override;
virtual void video_start() override;
+ required_device<cpu_device> m_maincpu;
required_device<palette_device> m_palette;
optional_device_array<megasys1_tilemap_device, 4> m_tmap;
@@ -179,7 +180,6 @@ protected:
private:
required_shared_ptr<uint16_t> m_sharedram;
- required_device<cpu_device> m_maincpu;
optional_region_ptr<uint8_t> m_prirom;
required_ioport_array<3> m_p1_key_io;
optional_ioport_array<3> m_p2_key_io;
@@ -1086,10 +1086,11 @@ void urashima_state::machine_reset()
mcu_check_test_mode();
}
-MACHINE_CONFIG_START(jalmah_state::jalmah)
- MCFG_DEVICE_ADD("maincpu" , M68000, 12000000/2) // assume same as Mega System 1
- MCFG_DEVICE_PROGRAM_MAP(jalmah_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jalmah_state, irq2_line_hold)
+void jalmah_state::jalmah(machine_config &config)
+{
+ M68000(config, m_maincpu, 12000000/2); // assume same as Mega System 1
+ m_maincpu->set_addrmap(AS_PROGRAM, &jalmah_state::jalmah_map);
+ m_maincpu->set_vblank_int("screen", FUNC(jalmah_state::irq2_line_hold));
//M50747 MCU
@@ -1098,20 +1099,20 @@ MACHINE_CONFIG_START(jalmah_state::jalmah)
MEGASYS1_TILEMAP(config, m_tmap[2], m_palette, 0x0200);
MEGASYS1_TILEMAP(config, m_tmap[3], m_palette, 0x0300);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(12000000/2,406,0,256,263,16,240) // assume same as nmk16 & mega system 1
- MCFG_SCREEN_UPDATE_DRIVER(jalmah_state, screen_update_jalmah)
- MCFG_SCREEN_PALETTE(m_palette)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(12000000/2,406,0,256,263,16,240); // assume same as nmk16 & mega system 1
+ screen.set_screen_update(FUNC(jalmah_state::screen_update_jalmah));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 0x400);
TIMER(config, "mcusim").configure_periodic(FUNC(jalmah_state::mcu_sim), attotime::from_hz(10000));
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 4000000, okim6295_device::PIN7_LOW)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", 4000000, okim6295_device::PIN7_LOW));
+ oki.set_addrmap(0, &jalmah_state::oki_map);
+ oki.add_route(ALL_OUTPUTS, "mono", 0.5);
+}
static const gfx_layout charlayout =
{
@@ -1144,18 +1145,18 @@ static GFXDECODE_START( gfx_urashima )
GFXDECODE_ENTRY( "scroll3", 0, charlayout, 0x000, 16 )
GFXDECODE_END
-MACHINE_CONFIG_START(jalmah_state::jalmahv1)
+void jalmah_state::jalmahv1(machine_config &config)
+{
jalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(jalmahv1_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &jalmah_state::jalmahv1_map);
+}
-MACHINE_CONFIG_START(urashima_state::urashima)
+void urashima_state::urashima(machine_config &config)
+{
jalmah(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(urashima_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &urashima_state::urashima_map);
// Urashima seems to use an earlier version of the Jaleco tilemaps (without range etc.)
// and with per-scanline video registers
@@ -1166,9 +1167,8 @@ MACHINE_CONFIG_START(urashima_state::urashima)
GFXDECODE(config, "gfxdecode", m_palette, gfx_urashima);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(urashima_state, screen_update_urashima)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(urashima_state::screen_update_urashima));
+}
// fake ROM containing 68k snippets
// the original MCU actually uploads these into shared work ram area
diff --git a/src/mame/drivers/jangou.cpp b/src/mame/drivers/jangou.cpp
index 7b9844585e2..f35b4a257f1 100644
--- a/src/mame/drivers/jangou.cpp
+++ b/src/mame/drivers/jangou.cpp
@@ -870,8 +870,8 @@ MACHINE_RESET_MEMBER(jangou_state,jngolady)
}
/* Note: All frequencies and dividers are unverified */
-MACHINE_CONFIG_START(jangou_state::jangou)
-
+void jangou_state::jangou(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_cpu_0, MASTER_CLOCK / 8);
m_cpu_0->set_addrmap(AS_PROGRAM, &jangou_state::cpu0_map);
diff --git a/src/mame/drivers/jchan.cpp b/src/mame/drivers/jchan.cpp
index 33e5cf4a321..5d860983d60 100644
--- a/src/mame/drivers/jchan.cpp
+++ b/src/mame/drivers/jchan.cpp
@@ -603,26 +603,26 @@ INPUT_PORTS_END
/* machine driver */
-MACHINE_CONFIG_START(jchan_state::jchan)
-
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(jchan_main)
+void jchan_state::jchan(machine_config &config)
+{
+ M68000(config, m_maincpu, 16000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jchan_state::jchan_main);
TIMER(config, "scantimer").configure_scanline(FUNC(jchan_state::vblank), "screen", 0, 1);
- MCFG_DEVICE_ADD("sub", M68000, 16000000)
- MCFG_DEVICE_PROGRAM_MAP(jchan_sub)
+ M68000(config, m_subcpu, 16000000);
+ m_subcpu->set_addrmap(AS_PROGRAM, &jchan_state::jchan_sub);
WATCHDOG_TIMER(config, "watchdog");
GFXDECODE(config, "gfxdecode", m_palette, gfx_jchan);
- 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, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(jchan_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(64*8, 64*8);
+ screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
+ screen.set_screen_update(FUNC(jchan_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 0x10000);
@@ -634,7 +634,7 @@ MACHINE_CONFIG_START(jchan_state::jchan)
for (auto &spritegen : m_spritegen)
SKNS_SPRITE(config, spritegen, 0);
- MCFG_DEVICE_ADD("toybox", KANEKO_TOYBOX, "eeprom", "DSW1", "mcuram", "mcudata")
+ KANEKO_TOYBOX(config, "toybox", "eeprom", "DSW1", "mcuram", "mcudata");
EEPROM_93C46_16BIT(config, "eeprom");
@@ -642,10 +642,10 @@ MACHINE_CONFIG_START(jchan_state::jchan)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymz", YMZ280B, 16000000)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ ymz280b_device &ymz(YMZ280B(config, "ymz", 16000000));
+ ymz.add_route(0, "lspeaker", 1.0);
+ ymz.add_route(1, "rspeaker", 1.0);
+}
/* ROM loading */
diff --git a/src/mame/drivers/jclub2.cpp b/src/mame/drivers/jclub2.cpp
index a511e6a6a7e..b5720c16a48 100644
--- a/src/mame/drivers/jclub2.cpp
+++ b/src/mame/drivers/jclub2.cpp
@@ -1131,15 +1131,16 @@ TIMER_DEVICE_CALLBACK_MEMBER(common_state::scanline_irq)
}
// Older hardware (ST-0020 + ST-0016)
-MACHINE_CONFIG_START(jclub2o_state::jclub2o)
- MCFG_DEVICE_ADD("maincpu", M68EC020, 12000000)
- MCFG_DEVICE_PROGRAM_MAP(jclub2o_map)
+void jclub2o_state::jclub2o(machine_config &config)
+{
+ M68EC020(config, m_maincpu, 12000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jclub2o_state::jclub2o_map);
TIMER(config, "scantimer").configure_scanline(FUNC(common_state::scanline_irq), "screen", 0, 1);
- MCFG_DEVICE_ADD("soundcpu",ST0016_CPU, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(st0016_mem)
- MCFG_DEVICE_IO_MAP(st0016_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jclub2o_state, irq0_line_hold)
+ ST0016_CPU(config, m_soundcpu, 8000000);
+ m_soundcpu->set_addrmap(AS_PROGRAM, &jclub2o_state::st0016_mem);
+ m_soundcpu->set_addrmap(AS_IO, &jclub2o_state::st0016_io);
+ m_soundcpu->set_vblank_int("screen", FUNC(jclub2o_state::irq0_line_hold));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
EEPROM_S29290_16BIT(config, "eeprom");
@@ -1149,13 +1150,13 @@ MACHINE_CONFIG_START(jclub2o_state::jclub2o)
TICKET_DISPENSER(config, m_hopper2, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH);
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(0x190, 0x100+16)
- MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 0x10, 0x100-1)
- MCFG_SCREEN_UPDATE_DRIVER(jclub2_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(0x190, 0x100+16);
+ screen.set_visarea(0, 0x190-1, 0x10, 0x100-1);
+ screen.set_screen_update(FUNC(jclub2_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x10000);
@@ -1165,13 +1166,14 @@ MACHINE_CONFIG_START(jclub2o_state::jclub2o)
// layout
config.set_default_layout(layout_jclub2o);
-MACHINE_CONFIG_END
+}
// Newer hardware (ST-0032)
-MACHINE_CONFIG_START(jclub2_state::jclub2)
- MCFG_DEVICE_ADD("maincpu", M68EC020, 12000000)
- MCFG_DEVICE_PROGRAM_MAP(jclub2_map)
+void jclub2_state::jclub2(machine_config &config)
+{
+ M68EC020(config, m_maincpu, 12000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jclub2_state::jclub2_map);
TIMER(config, "scantimer").configure_scanline(FUNC(common_state::scanline_irq), "screen", 0, 1);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -1182,13 +1184,13 @@ MACHINE_CONFIG_START(jclub2_state::jclub2)
TICKET_DISPENSER(config, m_hopper2, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH);
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(0x190, 0x100+16)
- MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
- MCFG_SCREEN_UPDATE_DRIVER(jclub2_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(0x190, 0x100+16);
+ screen.set_visarea(0, 0x190-1, 8, 0x100-8-1);
+ screen.set_screen_update(FUNC(jclub2_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x10000);
@@ -1200,12 +1202,13 @@ MACHINE_CONFIG_START(jclub2_state::jclub2)
// layout
config.set_default_layout(layout_jclub2o);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(darkhors_state::darkhors)
- MCFG_DEVICE_ADD("maincpu", M68EC020, 12000000) // 36MHz/3 ??
- MCFG_DEVICE_PROGRAM_MAP(darkhors_map)
+void darkhors_state::darkhors(machine_config &config)
+{
+ M68EC020(config, m_maincpu, 12000000); // 36MHz/3 ??
+ m_maincpu->set_addrmap(AS_PROGRAM, &darkhors_state::darkhors_map);
TIMER(config, "scantimer").configure_scanline(FUNC(common_state::scanline_irq), "screen", 0, 1);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -1216,13 +1219,13 @@ MACHINE_CONFIG_START(darkhors_state::darkhors)
TICKET_DISPENSER(config, m_hopper2, attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH);
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(0x190, 0x100+16)
- MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
- MCFG_SCREEN_UPDATE_DRIVER(darkhors_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(0x190, 0x100+16);
+ screen.set_visarea(0, 0x190-1, 8, 0x100-8-1);
+ screen.set_screen_update(FUNC(darkhors_state::screen_update));
+ screen.set_palette(m_palette);
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x10000);
@@ -1235,9 +1238,8 @@ MACHINE_CONFIG_START(darkhors_state::darkhors)
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 528000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 528000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // clock frequency & pin 7 not verified
+}
/***************************************************************************
diff --git a/src/mame/drivers/jeutel.cpp b/src/mame/drivers/jeutel.cpp
index 3dff8566ab2..37877d8feb3 100644
--- a/src/mame/drivers/jeutel.cpp
+++ b/src/mame/drivers/jeutel.cpp
@@ -198,15 +198,18 @@ void jeutel_state::init_jeutel()
{
}
-MACHINE_CONFIG_START(jeutel_state::jeutel)
+void jeutel_state::jeutel(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 3300000)
- MCFG_DEVICE_PROGRAM_MAP(jeutel_map)
- MCFG_DEVICE_ADD("cpu2", Z80, 3300000)
- MCFG_DEVICE_PROGRAM_MAP(jeutel_cpu2)
- MCFG_DEVICE_ADD("cpu3", Z80, 3300000)
- MCFG_DEVICE_PROGRAM_MAP(jeutel_cpu3)
- MCFG_DEVICE_IO_MAP(jeutel_cpu3_io)
+ Z80(config, m_maincpu, 3300000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jeutel_state::jeutel_map);
+
+ Z80(config, m_cpu2, 3300000);
+ m_cpu2->set_addrmap(AS_PROGRAM, &jeutel_state::jeutel_cpu2);
+
+ z80_device &cpu3(Z80(config, "cpu3", 3300000));
+ cpu3.set_addrmap(AS_PROGRAM, &jeutel_state::jeutel_cpu3);
+ cpu3.set_addrmap(AS_IO, &jeutel_state::jeutel_cpu3_io);
/* Video */
config.set_default_layout(layout_jeutel);
@@ -222,10 +225,10 @@ MACHINE_CONFIG_START(jeutel_state::jeutel)
aysnd.port_b_read_callback().set(FUNC(jeutel_state::portb_r));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.40);
- MCFG_DEVICE_ADD("tms", TMS5110A, 640000)
- //MCFG_TMS5110_M0_CB(WRITELINE("tmsprom", tmsprom_device, m0_w))
- //MCFG_TMS5110_DATA_CB(READLINE("tmsprom", tmsprom_device, data_r))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ TMS5110A(config, m_tms, 640000);
+ //m_tms->m0().set("tmsprom", FUNC(tmsprom_device::m0_w));
+ //m_tms->data().set("tmsprom", FUNC(tmsprom_device::data_r));
+ m_tms->add_route(ALL_OUTPUTS, "mono", 1.0);
/* Devices */
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
@@ -253,7 +256,7 @@ MACHINE_CONFIG_START(jeutel_state::jeutel)
//ppi2.out_pc_callback().set(FUNC(jeutel_state::ppi2c_w));
TIMER(config, "timer_a").configure_periodic(FUNC(jeutel_state::timer_a), attotime::from_hz(120));
-MACHINE_CONFIG_END
+}
/*--------------------------------
/ Le King
diff --git a/src/mame/drivers/jokrwild.cpp b/src/mame/drivers/jokrwild.cpp
index 38c53c9fbe6..8e22e948f24 100644
--- a/src/mame/drivers/jokrwild.cpp
+++ b/src/mame/drivers/jokrwild.cpp
@@ -413,11 +413,11 @@ WRITE8_MEMBER(jokrwild_state::testb_w)
* Machine Drivers *
*************************/
-MACHINE_CONFIG_START(jokrwild_state::jokrwild)
-
+void jokrwild_state::jokrwild(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6809, MASTER_CLOCK/2) /* guess */
- MCFG_DEVICE_PROGRAM_MAP(jokrwild_map)
+ M6809(config, m_maincpu, MASTER_CLOCK/2); /* guess */
+ m_maincpu->set_addrmap(AS_PROGRAM, &jokrwild_state::jokrwild_map);
// NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -432,13 +432,13 @@ MACHINE_CONFIG_START(jokrwild_state::jokrwild)
pia1.readpb_handler().set_ioport("IN3");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE((32+1)*8, (32+1)*8) // From MC6845, registers 00 & 04. (value-1)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 26*8-1) // From MC6845, registers 01 & 06.
- MCFG_SCREEN_UPDATE_DRIVER(jokrwild_state, screen_update_jokrwild)
- 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((32+1)*8, (32+1)*8); // From MC6845, registers 00 & 04. (value-1)
+ screen.set_visarea(0*8, 24*8-1, 0*8, 26*8-1); // From MC6845, registers 01 & 06.
+ screen.set_screen_update(FUNC(jokrwild_state::screen_update_jokrwild));
+ screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_jokrwild);
PALETTE(config, "palette", FUNC(jokrwild_state::jokrwild_palette), 512);
@@ -448,8 +448,7 @@ MACHINE_CONFIG_START(jokrwild_state::jokrwild)
crtc.set_show_border_area(false);
crtc.set_char_width(8);
crtc.out_vsync_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
-
-MACHINE_CONFIG_END
+}
/*************************
diff --git a/src/mame/drivers/jollyjgr.cpp b/src/mame/drivers/jollyjgr.cpp
index 7fddc2e98e5..f745cad2888 100644
--- a/src/mame/drivers/jollyjgr.cpp
+++ b/src/mame/drivers/jollyjgr.cpp
@@ -676,19 +676,20 @@ void jollyjgr_state::machine_reset()
m_tilemap_bank = 0;
}
-MACHINE_CONFIG_START(jollyjgr_state::jollyjgr)
+void jollyjgr_state::jollyjgr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'000'000)/6) /* 3MHz verified */
- MCFG_DEVICE_PROGRAM_MAP(jollyjgr_map)
+ Z80(config, m_maincpu, XTAL(18'000'000)/6); /* 3MHz verified */
+ m_maincpu->set_addrmap(AS_PROGRAM, &jollyjgr_state::jollyjgr_map);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.18) /* 59.1864Hz measured */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_jollyjgr)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, jollyjgr_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(59.18); /* 59.1864Hz measured */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(256, 256);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(jollyjgr_state::screen_update_jollyjgr));
+ screen.screen_vblank().set(FUNC(jollyjgr_state::vblank_irq));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jollyjgr);
PALETTE(config, m_palette, FUNC(jollyjgr_state::jollyjgr_palette), 32); // tilemap and sprites
@@ -698,16 +699,15 @@ MACHINE_CONFIG_START(jollyjgr_state::jollyjgr)
SPEAKER(config, "mono").front_center();
AY8910(config, "aysnd", XTAL(3'579'545)/2).add_route(ALL_OUTPUTS, "mono", 0.45); /* 1.7897725MHz verified */
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(jollyjgr_state::fspider)
+void jollyjgr_state::fspider(machine_config &config)
+{
jollyjgr(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(fspider_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &jollyjgr_state::fspider_map);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_fspider)
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(jollyjgr_state::screen_update_fspider));
+}
/*************************************
*
diff --git a/src/mame/drivers/jongkyo.cpp b/src/mame/drivers/jongkyo.cpp
index e8286ef38c3..402fa56e677 100644
--- a/src/mame/drivers/jongkyo.cpp
+++ b/src/mame/drivers/jongkyo.cpp
@@ -508,8 +508,8 @@ void jongkyo_state::machine_reset()
}
-MACHINE_CONFIG_START(jongkyo_state::jongkyo)
-
+void jongkyo_state::jongkyo(machine_config &config)
+{
/* basic machine hardware */
sega_315_5084_device &maincpu(SEGA_315_5084(config, m_maincpu, JONGKYO_CLOCK/4));
maincpu.set_addrmap(AS_PROGRAM, &jongkyo_state::jongkyo_memmap);
@@ -522,13 +522,13 @@ MACHINE_CONFIG_START(jongkyo_state::jongkyo)
/* 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, 8, 256-8-1)
- MCFG_SCREEN_UPDATE_DRIVER(jongkyo_state, screen_update_jongkyo)
- 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, 8, 256-8-1);
+ screen.set_screen_update(FUNC(jongkyo_state::screen_update_jongkyo));
+ screen.set_palette("palette");
PALETTE(config, "palette", FUNC(jongkyo_state::jongkyo_palette), 0x100);
@@ -537,7 +537,7 @@ MACHINE_CONFIG_START(jongkyo_state::jongkyo)
aysnd.port_a_read_callback().set(FUNC(jongkyo_state::input_1p_r));
aysnd.port_b_read_callback().set(FUNC(jongkyo_state::input_2p_r));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.33);
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/jonos.cpp b/src/mame/drivers/jonos.cpp
index a66a3f783f2..92a767ec09d 100644
--- a/src/mame/drivers/jonos.cpp
+++ b/src/mame/drivers/jonos.cpp
@@ -175,26 +175,27 @@ static GFXDECODE_START( gfx_jonos )
GFXDECODE_END
-MACHINE_CONFIG_START(jonos_state::jonos)
+void jonos_state::jonos(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8085A, XTAL(16'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(jonos_mem)
+ I8085A(config, m_maincpu, XTAL(16'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jonos_state::jonos_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_UPDATE_DRIVER(jonos_state, screen_update)
- MCFG_SCREEN_SIZE(640, 288)
- MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 287)
- 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_screen_update(FUNC(jonos_state::screen_update));
+ screen.set_size(640, 288);
+ screen.set_visarea(0, 639, 0, 287);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_jonos);
PALETTE(config, "palette", palette_device::MONOCHROME);
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));
keyboard.set_keyboard_callback(FUNC(jonos_state::kbd_put));
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/joystand.cpp b/src/mame/drivers/joystand.cpp
index 7a99bab3e1e..633de6a096e 100644
--- a/src/mame/drivers/joystand.cpp
+++ b/src/mame/drivers/joystand.cpp
@@ -587,13 +587,13 @@ INTERRUPT_GEN_MEMBER(joystand_state::joystand_interrupt)
m_tmp68301->external_interrupt_1();
}
-MACHINE_CONFIG_START(joystand_state::joystand)
-
+void joystand_state::joystand(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(m_maincpu, M68000, XTAL(16'000'000)) // !! TMP68301 !!
- MCFG_DEVICE_PROGRAM_MAP(joystand_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", joystand_state, joystand_interrupt)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback)
+ M68000(config, m_maincpu, XTAL(16'000'000)); // !! TMP68301 !!
+ m_maincpu->set_addrmap(AS_PROGRAM, &joystand_state::joystand_map);
+ m_maincpu->set_vblank_int("screen", FUNC(joystand_state::joystand_interrupt));
+ m_maincpu->set_irq_acknowledge_callback("tmp68301", FUNC(tmp68301_device::irq_callback));
TMP68301(config, m_tmp68301, 0);
m_tmp68301->set_cputag(m_maincpu);
@@ -601,11 +601,11 @@ MACHINE_CONFIG_START(joystand_state::joystand)
m_tmp68301->out_parallel_callback().set(FUNC(joystand_state::eeprom_w));
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_DRIVER(joystand_state, screen_update)
- MCFG_SCREEN_SIZE(0x200, 0x100)
- MCFG_SCREEN_VISIBLE_AREA(0x40, 0x40+0x178-1, 0x10, 0x100-1)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_screen_update(FUNC(joystand_state::screen_update));
+ screen.set_size(0x200, 0x100);
+ screen.set_visarea(0x40, 0x40+0x178-1, 0x10, 0x100-1);
PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x1000);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_joystand);
@@ -615,11 +615,9 @@ MACHINE_CONFIG_START(joystand_state::joystand)
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ym2413", YM2413, XTAL(3'579'545))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+ YM2413(config, "ym2413", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 0.80);
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(16'000'000) / 16, okim6295_device::PIN7_HIGH) // pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ OKIM6295(config, m_oki, XTAL(16'000'000) / 16, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); // pin 7 not verified
// cart
TMS_29F040(config, "cart.u1");
@@ -638,7 +636,7 @@ MACHINE_CONFIG_START(joystand_state::joystand)
// devices
EEPROM_93C46_16BIT(config, "eeprom");
MSM6242(config, "rtc", XTAL(32'768));
-MACHINE_CONFIG_END
+}
/***************************************************************************
diff --git a/src/mame/drivers/jpmimpct.cpp b/src/mame/drivers/jpmimpct.cpp
index c09569d27cc..6db9c4aa5f5 100644
--- a/src/mame/drivers/jpmimpct.cpp
+++ b/src/mame/drivers/jpmimpct.cpp
@@ -838,9 +838,10 @@ WRITE_LINE_MEMBER(jpmimpct_state::tms_irq)
*
*************************************/
-MACHINE_CONFIG_START(jpmimpct_state::jpmimpct)
- MCFG_DEVICE_ADD("maincpu", M68000, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(m68k_program_map)
+void jpmimpct_state::jpmimpct(machine_config &config)
+{
+ M68000(config, m_maincpu, 8000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jpmimpct_state::m68k_program_map);
TMS34010(config, m_dsp, 40000000);
m_dsp->set_addrmap(AS_PROGRAM, &jpmimpct_state::tms_program_map);
@@ -859,19 +860,18 @@ MACHINE_CONFIG_START(jpmimpct_state::jpmimpct)
TIMER(config, m_duart_1_timer).configure_generic(FUNC(jpmimpct_state::duart_1_timer_event));
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(40000000/4, 156*4, 0, 100*4, 328, 0, 300)
- MCFG_SCREEN_UPDATE_DEVICE("dsp", tms34010_device, tms340x0_rgb32)
- MCFG_PALETTE_ADD("palette", 256)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(40000000/4, 156*4, 0, 100*4, 328, 0, 300);
+ screen.set_screen_update("dsp", FUNC(tms34010_device::tms340x0_rgb32));
+ PALETTE(config, m_palette).set_entries(256);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("upd", UPD7759)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_VIDEO_START_OVERRIDE(jpmimpct_state,jpmimpct)
METERS(config, m_meters, 0).set_number(5);
-MACHINE_CONFIG_END
+}
@@ -1309,9 +1309,10 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(jpmimpct_state::impctawp)
- MCFG_DEVICE_ADD("maincpu",M68000, 8000000)
- MCFG_DEVICE_PROGRAM_MAP(awp68k_program_map)
+void jpmimpct_state::impctawp(machine_config &config)
+{
+ M68000(config, m_maincpu, 8000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jpmimpct_state::awp68k_program_map);
config.m_minimum_quantum = attotime::from_hz(30000);
S16LF01(config, m_vfd);
@@ -1329,8 +1330,8 @@ MACHINE_CONFIG_START(jpmimpct_state::impctawp)
TIMER(config, m_duart_1_timer).configure_generic(FUNC(jpmimpct_state::duart_1_timer_event));
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("upd",UPD7759)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50);
+
config.set_default_layout(layout_jpmimpct);
REEL(config, m_reel[0], STARPOINT_48STEP_REEL, 1, 3, 0x09, 4);
@@ -1347,9 +1348,7 @@ MACHINE_CONFIG_START(jpmimpct_state::impctawp)
m_reel[5]->optic_handler().set(FUNC(jpmimpct_state::reel_optic_cb<5>));
METERS(config, m_meters, 0).set_number(5);
-
-MACHINE_CONFIG_END
-
+}
/*************************************
diff --git a/src/mame/drivers/jpmsru.cpp b/src/mame/drivers/jpmsru.cpp
index 6bff4e4c61f..ca601ce3439 100644
--- a/src/mame/drivers/jpmsru.cpp
+++ b/src/mame/drivers/jpmsru.cpp
@@ -73,17 +73,19 @@ void jpmsru_state::jpmsru_io(address_map &map)
static INPUT_PORTS_START( jpmsru )
INPUT_PORTS_END
-MACHINE_CONFIG_START(jpmsru_state::jpmsru)
+void jpmsru_state::jpmsru(machine_config &config)
+{
TMS9980A(config, m_maincpu, MAIN_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &jpmsru_state::jpmsru_map);
m_maincpu->set_addrmap(AS_IO, &jpmsru_state::jpmsru_io);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(jpmsru_state::jpmsru_4)
+void jpmsru_state::jpmsru_4(machine_config &config)
+{
TMS9980A(config, m_maincpu, MAIN_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &jpmsru_state::jpmsru_4_map);
m_maincpu->set_addrmap(AS_IO, &jpmsru_state::jpmsru_io);
-MACHINE_CONFIG_END
+}
void jpmsru_state::init_jpmsru()
{
diff --git a/src/mame/drivers/jpmsys5.cpp b/src/mame/drivers/jpmsys5.cpp
index 38f431377b8..6542cc1f317 100644
--- a/src/mame/drivers/jpmsys5.cpp
+++ b/src/mame/drivers/jpmsys5.cpp
@@ -583,7 +583,8 @@ void jpmsys5v_state::machine_reset()
*
*************************************/
-MACHINE_CONFIG_START(jpmsys5v_state::jpmsys5v)
+void jpmsys5v_state::jpmsys5v(machine_config &config)
+{
M68000(config, m_maincpu, 8_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &jpmsys5v_state::m68000_map);
@@ -613,25 +614,23 @@ MACHINE_CONFIG_START(jpmsys5v_state::jpmsys5v)
S16LF01(config, m_vfd); //for debug ports
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(XTAL(40'000'000) / 4, 676, 20*4, 147*4, 256, 0, 254)
- MCFG_SCREEN_UPDATE_DRIVER(jpmsys5v_state, screen_update_jpmsys5v)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_raw(XTAL(40'000'000) / 4, 676, 20*4, 147*4, 256, 0, 254);
+ screen.set_screen_update(FUNC(jpmsys5v_state::screen_update_jpmsys5v));
TMS34061(config, m_tms34061, 0);
m_tms34061->set_rowshift(8); /* VRAM address is (row << rowshift) | col */
m_tms34061->set_vram_size(0x40000);
m_tms34061->int_callback().set(FUNC(jpmsys5v_state::generate_tms34061_interrupt));
- MCFG_PALETTE_ADD("palette", 16)
+ PALETTE(config, "palette").set_entries(16);
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("upd7759", UPD7759)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+ UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.30);
/* Earlier revisions use an SAA1099, but no video card games seem to (?) */
- MCFG_DEVICE_ADD("ym2413", YM2413, 4000000 ) /* Unconfirmed */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
+ YM2413(config, "ym2413", 4000000).add_route(ALL_OUTPUTS, "mono", 1.00); /* Unconfirmed */
pia6821_device &pia(PIA6821(config, "6821pia", 0));
pia.readpa_handler().set(FUNC(jpmsys5v_state::u29_porta_r));
@@ -646,7 +645,7 @@ MACHINE_CONFIG_START(jpmsys5v_state::jpmsys5v)
ptm.set_external_clocks(0, 0, 0);
ptm.o1_callback().set(FUNC(jpmsys5v_state::u26_o1_callback));
ptm.irq_callback().set(FUNC(jpmsys5v_state::ptm_irq));
-MACHINE_CONFIG_END
+}
READ16_MEMBER(jpmsys5_state::mux_awp_r)
{
diff --git a/src/mame/drivers/jpmsys7.cpp b/src/mame/drivers/jpmsys7.cpp
index eafdcb7fa17..2702f1fc070 100644
--- a/src/mame/drivers/jpmsys7.cpp
+++ b/src/mame/drivers/jpmsys7.cpp
@@ -56,15 +56,16 @@ void jpmsys7_state::jpmsys7_map(address_map &map)
static INPUT_PORTS_START( jpmsys7 )
INPUT_PORTS_END
-MACHINE_CONFIG_START(jpmsys7_state::jpmsys7)
- MCFG_DEVICE_ADD("maincpu", MCF5206E, 40000000) // seems to be a Coldfire of some kind
- MCFG_DEVICE_PROGRAM_MAP(jpmsys7_map)
+void jpmsys7_state::jpmsys7(machine_config &config)
+{
+ MCF5206E(config, m_maincpu, 40000000); // seems to be a Coldfire of some kind
+ m_maincpu->set_addrmap(AS_PROGRAM, &jpmsys7_state::jpmsys7_map);
MCF5206E_PERIPHERAL(config, "maincpu_onboard", 0);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
/* unknown sound (probably DMA driven DAC) */
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/jr200.cpp b/src/mame/drivers/jr200.cpp
index 9998844d3c6..4228a4fdd41 100644
--- a/src/mame/drivers/jr200.cpp
+++ b/src/mame/drivers/jr200.cpp
@@ -539,21 +539,22 @@ void jr200_state::machine_reset()
}
-MACHINE_CONFIG_START(jr200_state::jr200)
+void jr200_state::jr200(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6802, XTAL(14'318'181) / 4) /* MN1800A, ? Mhz assumption that it is same as JR-100*/
- MCFG_DEVICE_PROGRAM_MAP(jr200_mem)
+ M6802(config, m_maincpu, XTAL(14'318'181) / 4); /* MN1800A, ? MHz assumption that it is same as JR-100*/
+ m_maincpu->set_addrmap(AS_PROGRAM, &jr200_state::jr200_mem);
-// MCFG_DEVICE_ADD("mn1544", MN1544, ?)
+// MN1544(config, "mn1544", ?);
/* 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(16 + 256 + 16, 16 + 192 + 16) /* border size not accurate */
- MCFG_SCREEN_VISIBLE_AREA(0, 16 + 256 + 16 - 1, 0, 16 + 192 + 16 - 1)
- MCFG_SCREEN_UPDATE_DRIVER(jr200_state, screen_update_jr200)
- 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(2500)); /* not accurate */
+ screen.set_size(16 + 256 + 16, 16 + 192 + 16); /* border size not accurate */
+ screen.set_visarea(0, 16 + 256 + 16 - 1, 0, 16 + 192 + 16 - 1);
+ screen.set_screen_update(FUNC(jr200_state::screen_update_jr200));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_jr200);
PALETTE(config, m_palette, palette_device::BRG_3BIT);
@@ -562,9 +563,8 @@ MACHINE_CONFIG_START(jr200_state::jr200)
// AY-8910 ?
- MCFG_DEVICE_ADD("beeper", BEEP, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS,"mono",0.50)
-MACHINE_CONFIG_END
+ BEEP(config, m_beeper, 0).add_route(ALL_OUTPUTS,"mono",0.50);
+}
diff --git a/src/mame/drivers/jtc.cpp b/src/mame/drivers/jtc.cpp
index dac98da8110..5e9c9bcdb39 100644
--- a/src/mame/drivers/jtc.cpp
+++ b/src/mame/drivers/jtc.cpp
@@ -834,71 +834,75 @@ MACHINE_CONFIG_START(jtc_state::basic)
MCFG_QUICKLOAD_ADD("quickload", jtc_state, jtc, "jtc,bin", attotime::from_seconds(2))
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(jtc_state::jtc)
+void jtc_state::jtc(machine_config &config)
+{
basic(config);
/* 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(jtc_state, screen_update)
- MCFG_SCREEN_SIZE(64, 64)
- MCFG_SCREEN_VISIBLE_AREA(0, 64-1, 0, 64-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(jtc_state::screen_update));
+ screen.set_size(64, 64);
+ screen.set_visarea(0, 64-1, 0, 64-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
/* internal ram */
RAM(config, m_ram).set_default_size("2K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(jtces88_state::jtces88)
+void jtces88_state::jtces88(machine_config &config)
+{
jtc(config);
/* internal ram */
m_ram->set_default_size("4K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(jtces23_state::jtces23)
+void jtces23_state::jtces23(machine_config &config)
+{
basic(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &jtces23_state::jtc_es23_mem);
/* 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(jtces23_state, screen_update)
- MCFG_SCREEN_SIZE(128, 128)
- MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0, 128-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(jtces23_state::screen_update));
+ screen.set_size(128, 128);
+ screen.set_visarea(0, 128-1, 0, 128-1);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_jtces23);
PALETTE(config, "palette", palette_device::MONOCHROME);
/* internal ram */
RAM(config, RAM_TAG).set_default_size("4K");
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(jtces40_state::jtces40)
+void jtces40_state::jtces40(machine_config &config)
+{
basic(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &jtces40_state::jtc_es40_mem);
/* 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(jtces40_state, screen_update)
- MCFG_SCREEN_SIZE(320, 192)
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 192-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(jtces40_state::screen_update));
+ screen.set_size(320, 192);
+ screen.set_visarea(0, 320-1, 0, 192-1);
+ screen.set_palette("palette");
GFXDECODE(config, "gfxdecode", "palette", gfx_jtces40);
PALETTE(config, "palette", FUNC(jtc_state::es40_palette), 16);
/* internal ram */
RAM(config, RAM_TAG).set_default_size("8K").set_extra_options("16K,32K");
-MACHINE_CONFIG_END
+}
/* ROMs */
diff --git a/src/mame/drivers/jubilee.cpp b/src/mame/drivers/jubilee.cpp
index bbb516f507c..799d18ebcaf 100644
--- a/src/mame/drivers/jubilee.cpp
+++ b/src/mame/drivers/jubilee.cpp
@@ -670,8 +670,8 @@ GFXDECODE_END
* Machine Drivers *
*************************/
-MACHINE_CONFIG_START(jubilee_state::jubileep)
-
+void jubilee_state::jubileep(machine_config &config)
+{
// Main CPU TMS9980A, no line connections.
TMS9980A(config, m_maincpu, CPU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &jubilee_state::jubileep_map);
@@ -681,22 +681,22 @@ MACHINE_CONFIG_START(jubilee_state::jubileep)
NVRAM(config, "videoworkram", 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) /* (47+1*8, 38+1*8) from CRTC settings */
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) /* (32*8, 32*8) from CRTC settings */
- MCFG_SCREEN_UPDATE_DRIVER(jubilee_state, screen_update_jubileep)
- 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(32*8, 32*8); /* (47+1*8, 38+1*8) from CRTC settings */
+ screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); /* (32*8, 32*8) from CRTC settings */
+ screen.set_screen_update(FUNC(jubilee_state::screen_update_jubileep));
+ screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_jubileep);
- MCFG_PALETTE_ADD("palette",8)
+ PALETTE(config, "palette").set_entries(8);
mc6845_device &crtc(MC6845(config, "crtc", CRTC_CLOCK));
crtc.set_screen("screen");
crtc.set_show_border_area(false);
crtc.set_char_width(8);
-MACHINE_CONFIG_END
+}
/*************************
diff --git a/src/mame/drivers/juicebox.cpp b/src/mame/drivers/juicebox.cpp
index df74caac2e2..2e01708869a 100644
--- a/src/mame/drivers/juicebox.cpp
+++ b/src/mame/drivers/juicebox.cpp
@@ -308,19 +308,19 @@ void juicebox_state::init_juicebox()
// do nothing
}
-MACHINE_CONFIG_START(juicebox_state::juicebox)
- MCFG_DEVICE_ADD("maincpu", ARM7, 66000000)
- MCFG_DEVICE_PROGRAM_MAP(juicebox_map)
-
- MCFG_PALETTE_ADD("palette", 32768)
+void juicebox_state::juicebox(machine_config &config)
+{
+ ARM7(config, m_maincpu, 66000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &juicebox_state::juicebox_map);
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(240, 160)
- MCFG_SCREEN_VISIBLE_AREA(0, 240 - 1, 0, 160 - 1)
+ PALETTE(config, "palette").set_entries(32768);
- MCFG_SCREEN_UPDATE_DEVICE("s3c44b0", s3c44b0_device, video_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(240, 160);
+ screen.set_visarea(0, 240 - 1, 0, 160 - 1);
+ screen.set_screen_update("s3c44b0", FUNC(s3c44b0_device::video_update));
SPEAKER(config, "speaker").front_center();
DAC_16BIT_R2R_TWOS_COMPLEMENT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 1.0); // unknown DAC
@@ -338,7 +338,7 @@ MACHINE_CONFIG_START(juicebox_state::juicebox)
/* software lists */
SOFTWARE_LIST(config, "cart_list").set_original("juicebox");
-MACHINE_CONFIG_END
+}
static INPUT_PORTS_START( juicebox )
PORT_START( "PORTG" )
diff --git a/src/mame/drivers/jungleyo.cpp b/src/mame/drivers/jungleyo.cpp
index b42416e14b7..dc8967d320a 100644
--- a/src/mame/drivers/jungleyo.cpp
+++ b/src/mame/drivers/jungleyo.cpp
@@ -120,31 +120,31 @@ static GFXDECODE_START( gfx_jungleyo )
GFXDECODE_END
-MACHINE_CONFIG_START(jungleyo_state::jungleyo)
-
- MCFG_DEVICE_ADD("maincpu", M68000, 24_MHz_XTAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(jungleyo_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", jungleyo_state, irq1_line_hold)
+void jungleyo_state::jungleyo(machine_config &config)
+{
+ M68000(config, m_maincpu, 24_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jungleyo_state::jungleyo_map);
+ m_maincpu->set_vblank_int("screen", FUNC(jungleyo_state::irq1_line_hold));
GFXDECODE(config, m_gfxdecode, "palette", gfx_jungleyo);
- 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(jungleyo_state, screen_update_jungleyo)
- 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, 64*8-1, 0*8, 32*8-1);
+ screen.set_screen_update(FUNC(jungleyo_state::screen_update_jungleyo));
+ screen.set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x200);
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki", OKIM6295, 24_MHz_XTAL / 20, 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)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", 24_MHz_XTAL / 20, 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);
+}
ROM_START( jungleyo )
diff --git a/src/mame/drivers/jupace.cpp b/src/mame/drivers/jupace.cpp
index 5ee07a09601..453a6828dc0 100644
--- a/src/mame/drivers/jupace.cpp
+++ b/src/mame/drivers/jupace.cpp
@@ -751,21 +751,21 @@ void ace_state::machine_start()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( ace )
+// machine_config( ace )
//-------------------------------------------------
MACHINE_CONFIG_START(ace_state::ace)
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(6'500'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(ace_mem)
- MCFG_DEVICE_IO_MAP(ace_io)
+ Z80(config, m_maincpu, XTAL(6'500'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ace_state::ace_mem);
+ m_maincpu->set_addrmap(AS_IO, &ace_state::ace_io);
config.m_minimum_quantum = attotime::from_hz(60);
// video hardware
- MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_UPDATE_DRIVER(ace_state, screen_update)
- MCFG_SCREEN_RAW_PARAMS(XTAL(6'500'000), 416, 0, 336, 312, 0, 304)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_screen_update(FUNC(ace_state::screen_update));
+ screen.set_raw(XTAL(6'500'000), 416, 0, 336, 312, 0, 304);
+ screen.set_palette("palette");
TIMER(config, "set_irq").configure_scanline(FUNC(ace_state::set_irq), SCREEN_TAG, 31*8, 264);
TIMER(config, "clear_irq").configure_scanline(FUNC(ace_state::clear_irq), SCREEN_TAG, 32*8, 264);
diff --git a/src/mame/drivers/jupiter.cpp b/src/mame/drivers/jupiter.cpp
index e6f57c2018c..06726da0312 100644
--- a/src/mame/drivers/jupiter.cpp
+++ b/src/mame/drivers/jupiter.cpp
@@ -280,7 +280,7 @@ void jupiter3_state::machine_reset()
//**************************************************************************
//-------------------------------------------------
-// MACHINE_CONFIG( jupiter )
+// machine_config( jupiter )
//-------------------------------------------------
void jupiter2_state::jupiter2(machine_config &config)
@@ -316,23 +316,24 @@ void jupiter2_state::jupiter2(machine_config &config)
//-------------------------------------------------
-// MACHINE_CONFIG( jupiter3 )
+// machine_config( jupiter3 )
//-------------------------------------------------
-MACHINE_CONFIG_START(jupiter3_state::jupiter3)
+void jupiter3_state::jupiter3(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(jupiter3_mem)
- MCFG_DEVICE_IO_MAP(jupiter3_io)
+ Z80(config, m_maincpu, 4000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jupiter3_state::jupiter3_mem);
+ m_maincpu->set_addrmap(AS_IO, &jupiter3_state::jupiter3_io);
// video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(jupiter3_state, screen_update)
- MCFG_SCREEN_SIZE(512, 320)
- MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 320-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)); /* not accurate */
+ screen.set_screen_update(FUNC(jupiter3_state::screen_update));
+ screen.set_size(512, 320);
+ screen.set_visarea(0, 512-1, 0, 320-1);
+ screen.set_palette("palette");
PALETTE(config, "palette", palette_device::MONOCHROME);
@@ -346,7 +347,7 @@ MACHINE_CONFIG_START(jupiter3_state::jupiter3)
// internal ram
RAM(config, RAM_TAG).set_default_size("64K");
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/k1003.cpp b/src/mame/drivers/k1003.cpp
index 95a11014fa5..50c42a3ca57 100644
--- a/src/mame/drivers/k1003.cpp
+++ b/src/mame/drivers/k1003.cpp
@@ -147,15 +147,16 @@ void k1003_state::machine_reset()
{
}
-MACHINE_CONFIG_START(k1003_state::k1003)
+void k1003_state::k1003(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",I8008, 800000)
- MCFG_DEVICE_PROGRAM_MAP(k1003_mem)
- MCFG_DEVICE_IO_MAP(k1003_io)
+ I8008(config, m_maincpu, 800000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &k1003_state::k1003_mem);
+ m_maincpu->set_addrmap(AS_IO, &k1003_state::k1003_io);
/* video hardware */
config.set_default_layout(layout_k1003);
-MACHINE_CONFIG_END
+}
/* ROM definition */
diff --git a/src/mame/drivers/kaneko16.cpp b/src/mame/drivers/kaneko16.cpp
index 42b241c5c70..3070854ecf8 100644
--- a/src/mame/drivers/kaneko16.cpp
+++ b/src/mame/drivers/kaneko16.cpp
@@ -1768,8 +1768,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(kaneko16_state::kaneko16_interrupt)
6-7] rte
*/
-MACHINE_CONFIG_START(kaneko16_berlwall_state::berlwall)
-
+void kaneko16_berlwall_state::berlwall(machine_config &config)
+{
/* basic machine hardware */
M68000(config, m_maincpu, 12000000); /* MC68000P12 */
m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_berlwall_state::berlwall_map);
@@ -1778,13 +1778,13 @@ MACHINE_CONFIG_START(kaneko16_berlwall_state::berlwall)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
-// MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) // mangled sprites otherwise
- 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, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_berlwall)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+// m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); // mangled sprites otherwise
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 16, 240-1);
+ m_screen->set_screen_update(FUNC(kaneko16_berlwall_state::screen_update_berlwall));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_1x4bit_1x4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
@@ -1817,7 +1817,7 @@ MACHINE_CONFIG_START(kaneko16_berlwall_state::berlwall)
OKIM6295(config, m_oki[0], 12000000/6, okim6295_device::PIN7_LOW);
m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0);
m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
-MACHINE_CONFIG_END
+}
/***************************************************************************
@@ -1830,8 +1830,8 @@ void kaneko16_state::bakubrkr_oki1_map(address_map &map)
map(0x20000, 0x3ffff).bankr("okibank1");
}
-MACHINE_CONFIG_START(kaneko16_state::bakubrkr)
-
+void kaneko16_state::bakubrkr(machine_config &config)
+{
/* basic machine hardware */
M68000(config, m_maincpu, XTAL(12'000'000)); /* verified on pcb */
m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::bakubrkr_map);
@@ -1843,14 +1843,14 @@ MACHINE_CONFIG_START(kaneko16_state::bakubrkr)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) // mangled sprites otherwise
- MCFG_SCREEN_REFRESH_RATE(59)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(256, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); // mangled sprites otherwise
+ m_screen->set_refresh_hz(59);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 16, 240-1);
+ m_screen->set_screen_update(FUNC(kaneko16_state::screen_update_kaneko16));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_1x4bit_2x4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
@@ -1885,7 +1885,7 @@ MACHINE_CONFIG_START(kaneko16_state::bakubrkr)
OKIM6295(config, m_oki[0], XTAL(12'000'000)/6, okim6295_device::PIN7_HIGH); /* verified on pcb */
m_oki[0]->set_addrmap(0, &kaneko16_state::bakubrkr_oki1_map);
m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
/***************************************************************************
@@ -1902,8 +1902,8 @@ MACHINE_CONFIG_END
6-7] busy loop
*/
-MACHINE_CONFIG_START(kaneko16_state::blazeon)
-
+void kaneko16_state::blazeon(machine_config &config)
+{
/* basic machine hardware */
M68000(config, m_maincpu, 12000000); /* TMP68HC000-12 */
m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_map);
@@ -1914,14 +1914,14 @@ MACHINE_CONFIG_START(kaneko16_state::blazeon)
m_audiocpu->set_addrmap(AS_IO, &kaneko16_state::blazeon_soundport);
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(320, 240)
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1 -8)
- MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(320, 240);
+ m_screen->set_visarea(0, 320-1, 0, 240-1 -8);
+ m_screen->set_screen_update(FUNC(kaneko16_state::screen_update_kaneko16));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_1x4bit_1x4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
@@ -1950,15 +1950,15 @@ MACHINE_CONFIG_START(kaneko16_state::blazeon)
YM2151(config, m_ymsnd, 4000000);
m_ymsnd->add_route(0, "lspeaker", 1.0);
m_ymsnd->add_route(1, "rspeaker", 1.0);
-MACHINE_CONFIG_END
+}
/***************************************************************************
Wing Force
***************************************************************************/
-MACHINE_CONFIG_START(kaneko16_state::wingforc)
-
+void kaneko16_state::wingforc(machine_config &config)
+{
/* basic machine hardware */
M68000(config, m_maincpu, XTAL(16'000'000)); /* TMP68HC000N-16 */
m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::blazeon_map);
@@ -1969,14 +1969,14 @@ MACHINE_CONFIG_START(kaneko16_state::wingforc)
m_audiocpu->set_addrmap(AS_IO, &kaneko16_state::wingforc_soundport);
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(59.1854)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(320, 240)
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1 -16)
- MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
+ m_screen->set_refresh_hz(59.1854);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(320, 240);
+ m_screen->set_visarea(0, 320-1, 0, 240-1 -16);
+ m_screen->set_screen_update(FUNC(kaneko16_state::screen_update_kaneko16));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_1x4bit_1x4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
@@ -2007,7 +2007,7 @@ MACHINE_CONFIG_START(kaneko16_state::wingforc)
OKIM6295(config, m_oki[0], XTAL(16'000'000)/16, okim6295_device::PIN7_HIGH);
m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0);
m_oki[0]->set_addrmap(0, &kaneko16_state::bakubrkr_oki1_map);
-MACHINE_CONFIG_END
+}
/***************************************************************************
@@ -2035,8 +2035,8 @@ void kaneko16_state::gtmr_oki2_map(address_map &map)
map(0x00000, 0x3ffff).bankr("okibank2");
}
-MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr)
-
+void kaneko16_gtmr_state::gtmr(machine_config &config)
+{
/* basic machine hardware */
M68000(config, m_maincpu, XTAL(16'000'000)); /* verified on pcb */
m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_gtmr_state::gtmr_map);
@@ -2049,14 +2049,14 @@ MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(320, 240)
- MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(320, 240);
+ m_screen->set_visarea(0, 320-1, 0, 240-1);
+ m_screen->set_screen_update(FUNC(kaneko16_state::screen_update_kaneko16));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_1x8bit_2x4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 32768);
@@ -2091,27 +2091,30 @@ MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr)
OKIM6295(config, m_oki[1], XTAL(16'000'000)/8, okim6295_device::PIN7_LOW); /* verified on pcb */
m_oki[1]->add_route(ALL_OUTPUTS, "mono", 0.5);
m_oki[1]->set_addrmap(0, &kaneko16_gtmr_state::gtmr_oki2_map);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmre)
+void kaneko16_gtmr_state::gtmre(machine_config &config)
+{
gtmr(config);
m_toybox->set_table(kaneko_toybox_device::TABLE_ALT);
-MACHINE_CONFIG_END
+}
/***************************************************************************
Great 1000 Miles Rally 2
***************************************************************************/
-MACHINE_CONFIG_START(kaneko16_gtmr_state::gtmr2)
+void kaneko16_gtmr_state::gtmr2(machine_config &config)
+{
gtmre(config);
m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_gtmr_state::gtmr2_map);
-MACHINE_CONFIG_END
+}
/***************************************************************************
Blood Warrior
***************************************************************************/
-MACHINE_CONFIG_START(kaneko16_gtmr_state::bloodwar)
+void kaneko16_gtmr_state::bloodwar(machine_config &config)
+{
gtmr(config);
/* basic machine hardware */
@@ -2119,7 +2122,7 @@ MACHINE_CONFIG_START(kaneko16_gtmr_state::bloodwar)
MCFG_MACHINE_RESET_OVERRIDE(kaneko16_gtmr_state, gtmr)
m_kaneko_spr->set_priorities(2 /* never used? */ ,3 /* character selection / vs. portraits */ ,5 /* winning portrait*/ ,7 /* ? */);
-MACHINE_CONFIG_END
+}
@@ -2127,7 +2130,8 @@ MACHINE_CONFIG_END
Bonk's Adventure
***************************************************************************/
-MACHINE_CONFIG_START(kaneko16_gtmr_state::bonkadv)
+void kaneko16_gtmr_state::bonkadv(machine_config &config)
+{
gtmr(config);
/* basic machine hardware */
@@ -2138,13 +2142,14 @@ MACHINE_CONFIG_START(kaneko16_gtmr_state::bonkadv)
m_toybox->set_game_type(kaneko_toybox_device::GAME_BONK);
m_kaneko_hit->set_type(0);
-MACHINE_CONFIG_END
+}
/***************************************************************************
Magical Crystal
***************************************************************************/
-MACHINE_CONFIG_START(kaneko16_state::mgcrystl)
+void kaneko16_state::mgcrystl(machine_config &config)
+{
/* basic machine hardware */
M68000(config, m_maincpu, XTAL(12'000'000)); /* verified on pcb, TMP68HC000N-12 @U31 and X2 is 12MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_state::mgcrystl_map);
@@ -2157,14 +2162,14 @@ MACHINE_CONFIG_START(kaneko16_state::mgcrystl)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- 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, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
+ m_screen->set_size(256, 256);
+ m_screen->set_visarea(0, 256-1, 0+16, 256-16-1);
+ m_screen->set_screen_update(FUNC(kaneko16_state::screen_update_kaneko16));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_1x4bit_2x4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
@@ -2198,7 +2203,7 @@ MACHINE_CONFIG_START(kaneko16_state::mgcrystl)
OKIM6295(config, m_oki[0], XTAL(12'000'000)/6, okim6295_device::PIN7_HIGH); /* verified on pcb */
m_oki[0]->add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
@@ -2261,8 +2266,8 @@ static const uint16_t shogwarr_default_eeprom[64] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0xFFFF
};
-MACHINE_CONFIG_START(kaneko16_shogwarr_state::shogwarr)
-
+void kaneko16_shogwarr_state::shogwarr(machine_config &config)
+{
/* basic machine hardware */
M68000(config, m_maincpu, XTAL(12'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &kaneko16_shogwarr_state::shogwarr_map);
@@ -2275,14 +2280,14 @@ MACHINE_CONFIG_START(kaneko16_shogwarr_state::shogwarr)
WATCHDOG_TIMER(config, m_watchdog);
/* video hardware */
- MCFG_SCREEN_ADD(m_screen, RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.1854)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(320, 240)
- MCFG_SCREEN_VISIBLE_AREA(40, 296-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(kaneko16_state, screen_update_kaneko16)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz(59.1854);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_size(320, 240);
+ m_screen->set_visarea(40, 296-1, 16, 240-1);
+ m_screen->set_screen_update(FUNC(kaneko16_state::screen_update_kaneko16));
+ m_screen->set_palette(m_palette);
+ m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_1x4bit_1x4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
@@ -2315,7 +2320,7 @@ MACHINE_CONFIG_START(kaneko16_shogwarr_state::shogwarr)
OKIM6295(config, m_oki[1], XTAL(16'000'000)/8, okim6295_device::PIN7_LOW);
m_oki[1]->set_addrmap(0, &kaneko16_shogwarr_state::gtmr_oki2_map);
m_oki[1]->add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
static const uint16_t brapboys_default_eeprom[64] = {
diff --git a/src/mame/drivers/kangaroo.cpp b/src/mame/drivers/kangaroo.cpp
index 62fff7f69c5..c0d8de228bf 100644
--- a/src/mame/drivers/kangaroo.cpp
+++ b/src/mame/drivers/kangaroo.cpp
@@ -418,24 +418,24 @@ INPUT_PORTS_END
*
*************************************/
-MACHINE_CONFIG_START(kangaroo_state::nomcu)
-
+void kangaroo_state::nomcu(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kangaroo_state, irq0_line_hold)
+ Z80(config, m_maincpu, MASTER_CLOCK/4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &kangaroo_state::main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(kangaroo_state::irq0_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/8)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_map) // yes, this is identical
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kangaroo_state, irq0_line_hold)
+ z80_device &audiocpu(Z80(config, "audiocpu", MASTER_CLOCK/8));
+ audiocpu.set_addrmap(AS_PROGRAM, &kangaroo_state::sound_map);
+ audiocpu.set_addrmap(AS_IO, &kangaroo_state::sound_map); // yes, this is identical
+ audiocpu.set_vblank_int("screen", FUNC(kangaroo_state::irq0_line_hold));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 320*2, 0*2, 256*2, 260, 8, 248)
- MCFG_SCREEN_UPDATE_DRIVER(kangaroo_state, screen_update_kangaroo)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_video_attributes(VIDEO_UPDATE_SCANLINE);
+ screen.set_raw(MASTER_CLOCK, 320*2, 0*2, 256*2, 260, 8, 248);
+ screen.set_screen_update(FUNC(kangaroo_state::screen_update_kangaroo));
PALETTE(config, m_palette, palette_device::BGR_3BIT);
@@ -445,17 +445,17 @@ MACHINE_CONFIG_START(kangaroo_state::nomcu)
GENERIC_LATCH_8(config, "soundlatch");
AY8910(config, "aysnd", MASTER_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 0.50);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(kangaroo_state::mcu)
+void kangaroo_state::mcu(machine_config &config)
+{
nomcu(config);
MCFG_MACHINE_START_OVERRIDE(kangaroo_state,kangaroo_mcu)
- MCFG_DEVICE_ADD("mcu", MB8841, MASTER_CLOCK/4/2)
- MCFG_DEVICE_DISABLE()
-MACHINE_CONFIG_END
+ MB8841(config, "mcu", MASTER_CLOCK/4/2).set_disable();
+}
diff --git a/src/mame/drivers/kas89.cpp b/src/mame/drivers/kas89.cpp
index 557be24145f..5de1f4a17af 100644
--- a/src/mame/drivers/kas89.cpp
+++ b/src/mame/drivers/kas89.cpp
@@ -767,17 +767,17 @@ INPUT_PORTS_END
* Machine Driver *
**************************************/
-MACHINE_CONFIG_START(kas89_state::kas89)
-
+void kas89_state::kas89(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* Confirmed */
- MCFG_DEVICE_PROGRAM_MAP(kas89_map)
- MCFG_DEVICE_IO_MAP(kas89_io)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* Confirmed */
+ m_maincpu->set_addrmap(AS_PROGRAM, &kas89_state::kas89_map);
+ m_maincpu->set_addrmap(AS_IO, &kas89_state::kas89_io);
TIMER(config, "kas89_nmi").configure_periodic(FUNC(kas89_state::kas89_nmi_cb), attotime::from_hz(138));
- MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/6) /* Confirmed */
- MCFG_DEVICE_PROGRAM_MAP(audio_map)
- MCFG_DEVICE_IO_MAP(audio_io)
+ Z80(config, m_audiocpu, MASTER_CLOCK/6); /* Confirmed */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &kas89_state::audio_map);
+ m_audiocpu->set_addrmap(AS_IO, &kas89_state::audio_io);
TIMER(config, "kas89_snmi").configure_periodic(FUNC(kas89_state::kas89_sound_nmi_cb), attotime::from_hz(138));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -795,7 +795,7 @@ MACHINE_CONFIG_START(kas89_state::kas89)
GENERIC_LATCH_8(config, m_soundlatch);
AY8910(config, "aysnd", MASTER_CLOCK/12).add_route(ALL_OUTPUTS, "mono", 1.0); /* Confirmed */
-MACHINE_CONFIG_END
+}
/**************************************
diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp
index fe1d2ff8e11..76fad038721 100644
--- a/src/mame/drivers/kaypro.cpp
+++ b/src/mame/drivers/kaypro.cpp
@@ -293,13 +293,14 @@ MACHINE_CONFIG_START(kaypro_state::kaypro484)
MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro )
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(80*8, 25*16)
- MCFG_SCREEN_VISIBLE_AREA(0,80*8-1,0,25*16-1)
+ 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(80*8, 25*16);
+ m_screen->set_visarea(0,80*8-1,0,25*16-1);
+ m_screen->set_screen_update(FUNC(kaypro_state::screen_update_kaypro484));
+
MCFG_VIDEO_START_OVERRIDE(kaypro_state, kaypro )
- MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_kaypro484)
GFXDECODE(config, "gfxdecode", m_palette, gfx_kaypro484);
PALETTE(config, m_palette, FUNC(kaypro_state::kaypro_palette), 3);
@@ -387,11 +388,11 @@ void kaypro_state::kaypro284(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:1", kaypro_floppies, "525ssdd", floppy_image_device::default_floppy_formats).enable_sound(true);
}
-MACHINE_CONFIG_START(kaypro_state::omni2)
+void kaypro_state::omni2(machine_config &config)
+{
kayproiv(config);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_omni2)
-MACHINE_CONFIG_END
+ m_screen->set_screen_update(FUNC(kaypro_state::screen_update_omni2));
+}
void kaypro_state::init_kaypro()
{
diff --git a/src/mame/drivers/kickgoal.cpp b/src/mame/drivers/kickgoal.cpp
index 91af2885e69..4520698d0c7 100644
--- a/src/mame/drivers/kickgoal.cpp
+++ b/src/mame/drivers/kickgoal.cpp
@@ -418,12 +418,12 @@ WRITE16_MEMBER(kickgoal_state::to_pic_w)
-MACHINE_CONFIG_START(kickgoal_state::kickgoal)
-
+void kickgoal_state::kickgoal(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) /* 12 MHz */
- MCFG_DEVICE_PROGRAM_MAP(kickgoal_program_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kickgoal_state, irq6_line_hold)
+ M68000(config, m_maincpu, XTAL(12'000'000)); /* 12 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &kickgoal_state::kickgoal_program_map);
+ m_maincpu->set_vblank_int("screen", FUNC(kickgoal_state::irq6_line_hold));
PIC16C57(config, m_audiocpu, XTAL(12'000'000)/3); /* 4MHz ? */
m_audiocpu->write_a().set(FUNC(kickgoal_state::soundio_port_a_w));
@@ -437,13 +437,13 @@ MACHINE_CONFIG_START(kickgoal_state::kickgoal)
EEPROM_93C46_16BIT(config, "eeprom").default_data(kickgoal_default_eeprom_type1, 128);
/* 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(9*8, 55*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal)
- 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(9*8, 55*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(kickgoal_state::screen_update_kickgoal));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_kickgoal);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
@@ -455,32 +455,32 @@ MACHINE_CONFIG_START(kickgoal_state::kickgoal)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_LOW)
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(kickgoal_state::actionhw)
+ OKIM6295(config, m_oki, XTAL(12'000'000)/12, okim6295_device::PIN7_LOW);
+ m_oki->set_addrmap(0, &kickgoal_state::oki_map);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 0.80);
+}
+void kickgoal_state::actionhw(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(12'000'000)) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(kickgoal_program_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kickgoal_state, irq6_line_hold)
+ M68000(config, m_maincpu, XTAL(12'000'000)); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &kickgoal_state::kickgoal_program_map);
+ m_maincpu->set_vblank_int("screen", FUNC(kickgoal_state::irq6_line_hold));
- MCFG_DEVICE_ADD("audiocpu", PIC16C57, XTAL(12'000'000)/3) /* verified on pcb */
- MCFG_DEVICE_DISABLE() /* Disabled since the internal rom isn't dumped */
+ PIC16C57(config, m_audiocpu, XTAL(12'000'000)/3); /* verified on pcb */
+ m_audiocpu->set_disable(); /* Disabled since the internal rom isn't dumped */
/* Program and Data Maps are internal to the MCU */
EEPROM_93C46_16BIT(config, "eeprom").default_data(kickgoal_default_eeprom_type1, 128);
/* 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(10*8+2, 54*8-1+2, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal)
- 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(10*8+2, 54*8-1+2, 0*8, 30*8-1);
+ screen.set_screen_update(FUNC(kickgoal_state::screen_update_kickgoal));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_actionhw);
PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 1024);
@@ -492,10 +492,10 @@ MACHINE_CONFIG_START(kickgoal_state::actionhw)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */
- MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-MACHINE_CONFIG_END
+ OKIM6295(config, m_oki, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH); /* verified on pcb */
+ m_oki->set_addrmap(0, &kickgoal_state::oki_map);
+ m_oki->add_route(ALL_OUTPUTS, "mono", 0.80);
+}
diff --git a/src/mame/drivers/kingdrby.cpp b/src/mame/drivers/kingdrby.cpp
index d88e8a89274..7a83fb6ab7c 100644
--- a/src/mame/drivers/kingdrby.cpp
+++ b/src/mame/drivers/kingdrby.cpp
@@ -964,21 +964,22 @@ void kingdrby_state::kingdrbb_palette(palette_device &palette) const
}
}
-MACHINE_CONFIG_START(kingdrby_state::kingdrby)
- MCFG_DEVICE_ADD("master", Z80, CLK_2)
- MCFG_DEVICE_PROGRAM_MAP(master_map)
- MCFG_DEVICE_IO_MAP(master_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kingdrby_state, irq0_line_hold)
-
- MCFG_DEVICE_ADD("slave", Z80, CLK_2)
- MCFG_DEVICE_PROGRAM_MAP(slave_map)
- MCFG_DEVICE_IO_MAP(slave_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kingdrby_state, irq0_line_hold)
-
- MCFG_DEVICE_ADD("soundcpu", Z80, CLK_2)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_io_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(kingdrby_state, irq0_line_hold, 1000) /* guess, controls ay8910 tempo.*/
+void kingdrby_state::kingdrby(machine_config &config)
+{
+ z80_device &master(Z80(config, "master", CLK_2));
+ master.set_addrmap(AS_PROGRAM, &kingdrby_state::master_map);
+ master.set_addrmap(AS_IO, &kingdrby_state::master_io_map);
+ master.set_vblank_int("screen", FUNC(kingdrby_state::irq0_line_hold));
+
+ z80_device &slave(Z80(config, "slave", CLK_2));
+ slave.set_addrmap(AS_PROGRAM, &kingdrby_state::slave_map);
+ slave.set_addrmap(AS_IO, &kingdrby_state::slave_io_map);
+ slave.set_vblank_int("screen", FUNC(kingdrby_state::irq0_line_hold));
+
+ Z80(config, m_soundcpu, CLK_2);
+ m_soundcpu->set_addrmap(AS_PROGRAM, &kingdrby_state::sound_map);
+ m_soundcpu->set_addrmap(AS_IO, &kingdrby_state::sound_io_map);
+ m_soundcpu->set_periodic_int(FUNC(kingdrby_state::irq0_line_hold), attotime::from_hz(1000)); /* guess, controls ay8910 tempo.*/
config.m_perfect_cpu_quantum = subtag("master");
@@ -1000,13 +1001,13 @@ MACHINE_CONFIG_START(kingdrby_state::kingdrby)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_kingdrby);
PALETTE(config, m_palette, FUNC(kingdrby_state::kingdrby_palette), 0x200);
- 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, 0, 224-1) /* controlled by CRTC */
- MCFG_SCREEN_UPDATE_DRIVER(kingdrby_state, screen_update_kingdrby)
- 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(2500)); /* not accurate */
+ screen.set_size(256, 256);
+ screen.set_visarea(0, 256-1, 0, 224-1); /* controlled by CRTC */
+ screen.set_screen_update(FUNC(kingdrby_state::screen_update_kingdrby));
+ screen.set_palette(m_palette);
mc6845_device &crtc(MC6845(config, "crtc", CLK_1/32)); /* 53.333 Hz. guess */
crtc.set_screen("screen");
@@ -1018,13 +1019,13 @@ MACHINE_CONFIG_START(kingdrby_state::kingdrby)
ay8910_device &aysnd(AY8910(config, "aysnd", CLK_1/8)); /* guess */
aysnd.port_a_read_callback().set(FUNC(kingdrby_state::sound_cmd_r));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.25);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(kingdrby_state::kingdrbb)
+void kingdrby_state::kingdrbb(machine_config &config)
+{
kingdrby(config);
- MCFG_DEVICE_MODIFY("slave")
- MCFG_DEVICE_PROGRAM_MAP(slave_1986_map)
+ subdevice<z80_device>("slave")->set_addrmap(AS_PROGRAM, &kingdrby_state::slave_1986_map);
m_palette->set_init(FUNC(kingdrby_state::kingdrbb_palette));
@@ -1044,26 +1045,26 @@ MACHINE_CONFIG_START(kingdrby_state::kingdrbb)
m_ppi[1]->out_pa_callback().set_nop();
m_ppi[1]->out_pb_callback().set_nop();
m_ppi[1]->out_pc_callback().set_nop();
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(kingdrby_state::cowrace)
+void kingdrby_state::cowrace(machine_config &config)
+{
kingdrbb(config);
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_PROGRAM_MAP(cowrace_sound_map)
- MCFG_DEVICE_IO_MAP(cowrace_sound_io)
+ m_soundcpu->set_addrmap(AS_PROGRAM, &kingdrby_state::cowrace_sound_map);
+ m_soundcpu->set_addrmap(AS_IO, &kingdrby_state::cowrace_sound_io);
m_gfxdecode->set_info(gfx_cowrace);
m_palette->set_init(FUNC(kingdrby_state::kingdrby_palette));
- MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+
+ OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.80); // clock frequency & pin 7 not verified
ym2203_device &aysnd(YM2203(config.replace(), "aysnd", 3000000));
aysnd.port_a_read_callback().set(FUNC(kingdrby_state::sound_cmd_r));
aysnd.port_b_read_callback().set("oki", FUNC(okim6295_device::read));
aysnd.port_b_write_callback().set("oki", FUNC(okim6295_device::write));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.80);
-MACHINE_CONFIG_END
+}
ROM_START( kingdrby )
ROM_REGION( 0x3000, "master", 0 )
diff --git a/src/mame/drivers/kingobox.cpp b/src/mame/drivers/kingobox.cpp
index c9397f5e376..575bd849403 100644
--- a/src/mame/drivers/kingobox.cpp
+++ b/src/mame/drivers/kingobox.cpp
@@ -462,8 +462,8 @@ void kingofb_state::machine_reset()
kingofb_f800_w(0); // LS174 reset
}
-MACHINE_CONFIG_START(kingofb_state::kingofb)
-
+void kingofb_state::kingofb(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, 4000000); // 4.0 MHz
m_maincpu->set_addrmap(AS_PROGRAM, &kingofb_state::kingobox_map);
@@ -489,14 +489,14 @@ MACHINE_CONFIG_START(kingofb_state::kingofb)
/* 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(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_kingofb)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("nmigate", input_merger_device, in_w<0>))
+ 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(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(kingofb_state::screen_update_kingofb));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(m_nmigate, FUNC(input_merger_device::in_w<0>));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_kingobox);
PALETTE(config, m_palette, FUNC(kingofb_state::kingofb_palette), 256+8*2, 256+8);
@@ -515,12 +515,12 @@ MACHINE_CONFIG_START(kingofb_state::kingofb)
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
+}
/* Ring King */
-MACHINE_CONFIG_START(kingofb_state::ringking)
-
+void kingofb_state::ringking(machine_config &config)
+{
/* basic machine hardware */
Z80(config, m_maincpu, 4000000); // 4.0 MHz
m_maincpu->set_addrmap(AS_PROGRAM, &kingofb_state::ringking_map);
@@ -546,14 +546,14 @@ MACHINE_CONFIG_START(kingofb_state::ringking)
/* 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(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_ringking)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("nmigate", input_merger_device, in_w<0>))
+ 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(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(kingofb_state::screen_update_ringking));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(m_nmigate, FUNC(input_merger_device::in_w<0>));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_rk);
PALETTE(config, m_palette, FUNC(kingofb_state::ringking_palette), 256+8*2, 256+8);
@@ -572,7 +572,7 @@ MACHINE_CONFIG_START(kingofb_state::ringking)
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
+}
/***************************************************************************
diff --git a/src/mame/drivers/kncljoe.cpp b/src/mame/drivers/kncljoe.cpp
index e2568b09ff9..74d90fec1c6 100644
--- a/src/mame/drivers/kncljoe.cpp
+++ b/src/mame/drivers/kncljoe.cpp
@@ -249,12 +249,12 @@ void kncljoe_state::machine_reset()
m_flipscreen = 0;
}
-MACHINE_CONFIG_START(kncljoe_state::kncljoe)
-
+void kncljoe_state::kncljoe(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(6'000'000)) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kncljoe_state, irq0_line_hold)
+ Z80(config, m_maincpu, XTAL(6'000'000)); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &kncljoe_state::main_map);
+ m_maincpu->set_vblank_int("screen", FUNC(kncljoe_state::irq0_line_hold));
m6803_cpu_device &soundcpu(M6803(config, "soundcpu", XTAL(3'579'545))); /* verified on pcb */
soundcpu.set_addrmap(AS_PROGRAM, &kncljoe_state::sound_map);
@@ -265,14 +265,14 @@ MACHINE_CONFIG_START(kncljoe_state::kncljoe)
soundcpu.set_periodic_int(FUNC(kncljoe_state::sound_nmi), attotime::from_hz((double)3970)); //measured 3.970 kHz
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1500))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(kncljoe_state, screen_update_kncljoe)
- MCFG_SCREEN_PALETTE(m_palette)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
+ m_screen->set_refresh_hz(60);
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(1500));
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(1*8, 31*8-1, 0*8, 32*8-1);
+ m_screen->set_screen_update(FUNC(kncljoe_state::screen_update_kncljoe));
+ m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_kncljoe);
PALETTE(config, m_palette, FUNC(kncljoe_state::kncljoe_palette), 16*8+16*8, 128+16);
@@ -287,12 +287,10 @@ MACHINE_CONFIG_START(kncljoe_state::kncljoe)
m_ay8910->port_b_write_callback().set(FUNC(kncljoe_state::unused_w));
m_ay8910->add_route(ALL_OUTPUTS, "mono", 0.30);
- MCFG_DEVICE_ADD("sn1", SN76489, XTAL(3'579'545)) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+ SN76489(config, "sn1", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */
- MCFG_DEVICE_ADD("sn2", SN76489, XTAL(3'579'545)) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
-MACHINE_CONFIG_END
+ SN76489(config, "sn2", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */
+}
diff --git a/src/mame/drivers/koftball.cpp b/src/mame/drivers/koftball.cpp
index faf83ce687e..2b1c1658888 100644
--- a/src/mame/drivers/koftball.cpp
+++ b/src/mame/drivers/koftball.cpp
@@ -238,20 +238,21 @@ static GFXDECODE_START( gfx_koftball )
GFXDECODE_END
-MACHINE_CONFIG_START(koftball_state::koftball)
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(21'477'272) / 2)
- MCFG_DEVICE_PROGRAM_MAP(koftball_mem)
+void koftball_state::koftball(machine_config &config)
+{
+ M68000(config, m_maincpu, XTAL(21'477'272) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &koftball_state::koftball_mem);
TIMER(config, "scantimer").configure_scanline(FUNC(koftball_state::bmc_interrupt), "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(koftball_state, screen_update_koftball)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*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) /* not accurate */);
+ screen.set_screen_update(FUNC(koftball_state::screen_update_koftball));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 0*8, 30*8-1);
+ screen.set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 256)
+ PALETTE(config, m_palette).set_entries(256);
ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette));
ramdac.set_addrmap(0, &koftball_state::ramdac_map);
@@ -260,14 +261,14 @@ MACHINE_CONFIG_START(koftball_state::koftball)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) // guessed chip type, clock not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
+ ym2413_device &ymsnd(YM2413(config, "ymsnd", XTAL(3'579'545))); // guessed chip type, clock not verified
+ ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 0.50);
+ ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
- MCFG_DEVICE_ADD("oki", OKIM6295, 1122000, okim6295_device::PIN7_LOW) /* clock frequency & pin 7 not verified */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", 1122000, okim6295_device::PIN7_LOW)); /* clock frequency & pin 7 not verified */
+ oki.add_route(ALL_OUTPUTS, "lspeaker", 0.50);
+ oki.add_route(ALL_OUTPUTS, "rspeaker", 0.50);
+}
ROM_START( koftball )
ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
diff --git a/src/mame/drivers/koikoi.cpp b/src/mame/drivers/koikoi.cpp
index 51eb86d950f..e2ee71ee3a5 100644
--- a/src/mame/drivers/koikoi.cpp
+++ b/src/mame/drivers/koikoi.cpp
@@ -354,23 +354,23 @@ void koikoi_state::machine_reset()
m_ioram[i] = 0;
}
-MACHINE_CONFIG_START(koikoi_state::koikoi)
-
+void koikoi_state::koikoi(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,KOIKOI_CRYSTAL/4) /* ?? */
- MCFG_DEVICE_PROGRAM_MAP(koikoi_map)
- MCFG_DEVICE_IO_MAP(koikoi_io_map)
+ Z80(config, m_maincpu, KOIKOI_CRYSTAL/4); /* ?? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &koikoi_state::koikoi_map);
+ m_maincpu->set_addrmap(AS_IO, &koikoi_state::koikoi_io_map);
/* 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(koikoi_state, screen_update_koikoi)
- 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(koikoi_state::screen_update_koikoi));
+ screen.set_palette("palette");
+ screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI);
GFXDECODE(config, m_gfxdecode, "palette", gfx_koikoi);
PALETTE(config, "palette", FUNC(koikoi_state::koikoi_palette), 8 * 32, 16);
@@ -382,7 +382,7 @@ MACHINE_CONFIG_START(koikoi_state::koikoi)
aysnd.port_b_read_callback().set(FUNC(koikoi_state::input_r));
aysnd.port_a_write_callback().set(FUNC(koikoi_state::unknown_w));
aysnd.add_route(ALL_OUTPUTS, "mono", 0.10);
-MACHINE_CONFIG_END
+}
/*************************************
diff --git a/src/mame/drivers/konamigv.cpp b/src/mame/drivers/konamigv.cpp
index 1dcd966349e..664108f51cc 100644
--- a/src/mame/drivers/konamigv.cpp
+++ b/src/mame/drivers/konamigv.cpp
@@ -506,10 +506,10 @@ WRITE16_MEMBER(simpbowl_state::flash_w)
}
}
-MACHINE_CONFIG_START(simpbowl_state::simpbowl)
+void simpbowl_state::simpbowl(machine_config &config)
+{
konamigv(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_PROGRAM_MAP( simpbowl_map )
+ m_maincpu->set_addrmap(AS_PROGRAM, &simpbowl_state::simpbowl_map);
FUJITSU_29F016A(config, "flash0");
FUJITSU_29F016A(config, "flash1");
@@ -519,7 +519,7 @@ MACHINE_CONFIG_START(simpbowl_state::simpbowl)
upd4701_device &upd(UPD4701A(config, "upd"));
upd.set_portx_tag("TRACK0_X");
upd.set_porty_tag("TRACK0_Y");
-MACHINE_CONFIG_END
+}
static INPUT_PORTS_START( simpbowl )
PORT_INCLUDE( konamigv )
@@ -546,10 +546,10 @@ WRITE16_MEMBER(konamigv_state::btc_trackball_w)
}
}
-MACHINE_CONFIG_START(konamigv_state::btchamp)
+void konamigv_state::btchamp(machine_config &config)
+{
konamigv(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_PROGRAM_MAP( btchamp_map )
+ m_maincpu->set_addrmap(AS_PROGRAM, &konamigv_state::btchamp_map);
SHARP_LH28F400(config, "flash");
@@ -560,7 +560,7 @@ MACHINE_CONFIG_START(konamigv_state::btchamp)
UPD4701A(config, m_btc_trackball[1]);
m_btc_trackball[1]->set_portx_tag("TRACK1_X");
m_btc_trackball[1]->set_porty_tag("TRACK1_Y");
-MACHINE_CONFIG_END
+}
static INPUT_PORTS_START( btchamp )
PORT_INCLUDE( konamigv )
@@ -604,11 +604,11 @@ WRITE16_MEMBER(konamigv_state::tokimeki_serial_w)
}
-MACHINE_CONFIG_START(konamigv_state::tmosh)
+void konamigv_state::tmosh(machine_config &config)
+{
konamigv(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_PROGRAM_MAP( tmosh_map )
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &konamigv_state::tmosh_map);
+}
/*
Dead Eye
@@ -620,13 +620,13 @@ CD:
A01
*/
-MACHINE_CONFIG_START(konamigv_state::kdeadeye)
+void konamigv_state::kdeadeye(machine_config &config)
+{
konamigv(config);
- MCFG_DEVICE_MODIFY( "maincpu" )
- MCFG_DEVICE_PROGRAM_MAP( kdeadeye_map )
+ m_maincpu->set_addrmap(AS_PROGRAM, &konamigv_state::kdeadeye_map);
SHARP_LH28F400(config, "flash");
-MACHINE_CONFIG_END
+}
static INPUT_PORTS_START( kdeadeye )
PORT_INCLUDE( konamigv )
diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp
index 50e33254c5c..565a2837f3d 100644
--- a/src/mame/drivers/konamigx.cpp
+++ b/src/mame/drivers/konamigx.cpp
@@ -1645,7 +1645,7 @@ void konamigx_state::konamigx(machine_config &config)
/* These parameters are actual value written to the CCU.
tbyahhoo attract mode desync is caused by another matter. */
- //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600))
+ //MCFG_SCREEN_vblank_time(ATTOSECONDS_IN_USEC(600))
// TODO: WTF, without these most games crashes? Some legacy call in video code???
m_screen->set_size(1024, 1024);
m_screen->set_visarea(24, 24+288-1, 16, 16+224-1);
diff --git a/src/mame/drivers/konendev.cpp b/src/mame/drivers/konendev.cpp
index 2708b198fe7..d61bef2d23a 100644
--- a/src/mame/drivers/konendev.cpp
+++ b/src/mame/drivers/konendev.cpp
@@ -304,22 +304,23 @@ INTERRUPT_GEN_MEMBER(konendev_state::vbl_interrupt)
device.execute().set_input_line(INPUT_LINE_IRQ3, ASSERT_LINE);
}
-MACHINE_CONFIG_START(konendev_state::konendev)
+void konendev_state::konendev(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", PPC403GCX, 32000000) // Clock unknown
- MCFG_DEVICE_PROGRAM_MAP(konendev_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", konendev_state, vbl_interrupt)
+ PPC403GCX(config, m_maincpu, 32000000); // Clock unknown
+ m_maincpu->set_addrmap(AS_PROGRAM, &konendev_state::konendev_map);
+ m_maincpu->set_vblank_int("screen", FUNC(konendev_state::vbl_interrupt));
/* video hardware */
PALETTE(config, "palette", palette_device::RGB_555);
- 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, 639, 0, 479)
- MCFG_SCREEN_UPDATE_DRIVER(konendev_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(640, 480);
+ screen.set_visarea(0, 639, 0, 479);
+ screen.set_screen_update(FUNC(konendev_state::screen_update));
+ screen.set_palette("palette");
K057714(config, m_gcu, 0);
m_gcu->irq_callback().set(FUNC(konendev_state::gcu_interrupt));
@@ -333,10 +334,10 @@ MACHINE_CONFIG_START(konendev_state::konendev)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymz", YMZ280B, 16934400) // Clock unknown
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ ymz280b_device &ymz(YMZ280B(config, "ymz", 16934400)); // Clock unknown
+ ymz.add_route(0, "lspeaker", 1.0);
+ ymz.add_route(1, "rspeaker", 1.0);
+}
/* Interesting sets */
diff --git a/src/mame/drivers/konmedal68k.cpp b/src/mame/drivers/konmedal68k.cpp
index 38286a57418..7b562fa8655 100644
--- a/src/mame/drivers/konmedal68k.cpp
+++ b/src/mame/drivers/konmedal68k.cpp
@@ -294,20 +294,21 @@ void konmedal68k_state::machine_reset()
m_control = m_control2 = 0;
}
-MACHINE_CONFIG_START(konmedal68k_state::kzaurus)
+void konmedal68k_state::kzaurus(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(33'868'800)/4 ) // 33.8688 MHz crystal verified on PCB
- MCFG_DEVICE_PROGRAM_MAP(kzaurus_main)
+ M68000(config, m_maincpu, XTAL(33'868'800)/4); // 33.8688 MHz crystal verified on PCB
+ m_maincpu->set_addrmap(AS_PROGRAM, &konmedal68k_state::kzaurus_main);
TIMER(config, "scantimer").configure_scanline(FUNC(konmedal68k_state::scanline), "screen", 0, 1);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.62) /* verified on pcb */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(40, 400-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_DRIVER(konmedal68k_state, screen_update_konmedal68k)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(59.62); /* verified on pcb */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(40, 400-1, 16, 240-1);
+ screen.set_screen_update(FUNC(konmedal68k_state::screen_update_konmedal68k));
+ screen.set_palette("palette");
PALETTE(config, "palette").set_format(palette_device::xBGR_888, 8192).enable_shadows();
@@ -322,10 +323,10 @@ MACHINE_CONFIG_START(konmedal68k_state::kzaurus)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(33'868'800)/2) // 33.8688 MHz xtal verified on PCB
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ YMZ280B(config, m_ymz, XTAL(33'868'800)/2); // 33.8688 MHz xtal verified on PCB
+ m_ymz->add_route(0, "lspeaker", 1.0);
+ m_ymz->add_route(1, "rspeaker", 1.0);
+}
ROM_START( kzaurus )
ROM_REGION( 0x80000, "maincpu", 0 ) /* main program */
diff --git a/src/mame/drivers/kontest.cpp b/src/mame/drivers/kontest.cpp
index d3c8fc47410..2bf98250613 100644
--- a/src/mame/drivers/kontest.cpp
+++ b/src/mame/drivers/kontest.cpp
@@ -254,21 +254,21 @@ void kontest_state::machine_reset()
m_control = 0;
}
-MACHINE_CONFIG_START(kontest_state::kontest)
-
+void kontest_state::kontest(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,MAIN_CLOCK/8)
- MCFG_DEVICE_PROGRAM_MAP(kontest_map)
- MCFG_DEVICE_IO_MAP(kontest_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kontest_state, kontest_interrupt)
+ Z80(config, m_maincpu, MAIN_CLOCK/8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &kontest_state::kontest_map);
+ m_maincpu->set_addrmap(AS_IO, &kontest_state::kontest_io);
+ m_maincpu->set_vblank_int("screen", FUNC(kontest_state::kontest_interrupt));
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_DRIVER(kontest_state, screen_update)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
+ 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(kontest_state::screen_update));
+ screen.set_size(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
PALETTE(config, m_palette, FUNC(kontest_state::kontest_palette), 32);
@@ -276,12 +276,10 @@ MACHINE_CONFIG_START(kontest_state::kontest)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("sn1", SN76489A, MAIN_CLOCK/16)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
+ SN76489A(config, "sn1", MAIN_CLOCK/16).add_route(ALL_OUTPUTS, "rspeaker", 0.50);
- MCFG_DEVICE_ADD("sn2", SN76489A, MAIN_CLOCK/16)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
-MACHINE_CONFIG_END
+ SN76489A(config, "sn2", MAIN_CLOCK/16).add_route(ALL_OUTPUTS, "lspeaker", 0.50);
+}
/***************************************************************************
diff --git a/src/mame/drivers/kopunch.cpp b/src/mame/drivers/kopunch.cpp
index 7de29871fa1..f846590101a 100644
--- a/src/mame/drivers/kopunch.cpp
+++ b/src/mame/drivers/kopunch.cpp
@@ -233,13 +233,13 @@ void kopunch_state::machine_start()
save_item(NAME(m_scrollx));
}
-MACHINE_CONFIG_START(kopunch_state::kopunch)
-
+void kopunch_state::kopunch(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", I8085A, 4000000) // 4 MHz?
- MCFG_DEVICE_PROGRAM_MAP(kopunch_map)
- MCFG_DEVICE_IO_MAP(kopunch_io_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kopunch_state, vblank_interrupt)
+ I8085A(config, m_maincpu, 4000000); // 4 MHz?
+ m_maincpu->set_addrmap(AS_PROGRAM, &kopunch_state::kopunch_map);
+ m_maincpu->set_addrmap(AS_IO, &kopunch_state::kopunch_io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(kopunch_state::vblank_interrupt));
i8255_device &ppi0(I8255A(config, "ppi8255_0"));
// $30 - always $9b (PPI mode 0, ports A & B & C as input)
@@ -267,20 +267,20 @@ MACHINE_CONFIG_START(kopunch_state::kopunch)
ppi3.out_pc_callback().set(FUNC(kopunch_state::gfxbank_w));
/* 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, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(kopunch_state, screen_update_kopunch)
- 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(32*8, 32*8);
+ screen.set_visarea(0*8, 32*8-1, 2*8, 28*8-1);
+ screen.set_screen_update(FUNC(kopunch_state::screen_update_kopunch));
+ screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_kopunch);
PALETTE(config, "palette", FUNC(kopunch_state::kopunch_palette), 8);
/* sound hardware */
// ...
-MACHINE_CONFIG_END
+}
diff --git a/src/mame/drivers/kramermc.cpp b/src/mame/drivers/kramermc.cpp
index a38a409effd..b2229f86a83 100644
--- a/src/mame/drivers/kramermc.cpp
+++ b/src/mame/drivers/kramermc.cpp
@@ -111,11 +111,12 @@ static INPUT_PORTS_START( kramermc )
INPUT_PORTS_END
/* Machine driver */
-MACHINE_CONFIG_START(kramermc_state::kramermc)
+void kramermc_state::kramermc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 1500000)
- MCFG_DEVICE_PROGRAM_MAP(kramermc_mem)
- MCFG_DEVICE_IO_MAP(kramermc_io)
+ Z80(config, m_maincpu, 1500000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &kramermc_state::kramermc_mem);
+ m_maincpu->set_addrmap(AS_IO, &kramermc_state::kramermc_io);
z80pio_device& pio(Z80PIO(config, "z80pio", 1500000));
pio.in_pa_callback().set(FUNC(kramermc_state::kramermc_port_a_r));
@@ -123,19 +124,18 @@ MACHINE_CONFIG_START(kramermc_state::kramermc)
pio.in_pb_callback().set(FUNC(kramermc_state::kramermc_port_b_r));
/* 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(64*8, 16*8)
- MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(kramermc_state, screen_update_kramermc)
- 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(64*8, 16*8);
+ screen.set_visarea(0, 64*8-1, 0, 16*8-1);
+ screen.set_screen_update(FUNC(kramermc_state::screen_update_kramermc));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_kramermc);
PALETTE(config, m_palette, palette_device::MONOCHROME);
-
-MACHINE_CONFIG_END
+}
/* ROM definition */
ROM_START( kramermc )
diff --git a/src/mame/drivers/ksayakyu.cpp b/src/mame/drivers/ksayakyu.cpp
index f1c290556a2..f0ca353b282 100644
--- a/src/mame/drivers/ksayakyu.cpp
+++ b/src/mame/drivers/ksayakyu.cpp
@@ -258,28 +258,28 @@ void ksayakyu_state::machine_reset()
m_flipscreen = 0;
}
-MACHINE_CONFIG_START(ksayakyu_state::ksayakyu)
-
+void ksayakyu_state::ksayakyu(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,MAIN_CLOCK/8) //divider is guessed
- MCFG_DEVICE_PROGRAM_MAP(maincpu_map)
+ Z80(config, m_maincpu, MAIN_CLOCK/8); //divider is guessed
+ m_maincpu->set_addrmap(AS_PROGRAM, &ksayakyu_state::maincpu_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, MAIN_CLOCK/8) //divider is guessed, controls DAC tempo
- MCFG_DEVICE_PROGRAM_MAP(soundcpu_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(ksayakyu_state, irq0_line_hold, 60) //guess, controls music tempo
+ z80_device &audiocpu(Z80(config, "audiocpu", MAIN_CLOCK/8)); //divider is guessed, controls DAC tempo
+ audiocpu.set_addrmap(AS_PROGRAM, &ksayakyu_state::soundcpu_map);
+ audiocpu.set_periodic_int(FUNC(ksayakyu_state::irq0_line_hold), attotime::from_hz(60)); //guess, controls music tempo
config.m_minimum_quantum = attotime::from_hz(60000);
/* 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*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(ksayakyu_state, screen_update_ksayakyu)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(ASSERTLINE("maincpu", 0))
+ 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*8, 32*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(ksayakyu_state::screen_update_ksayakyu));
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set_inputline(m_maincpu, 0, ASSERT_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ksayakyu);
PALETTE(config, m_palette, FUNC(ksayakyu_state::ksayakyu_palette), 256);
@@ -303,7 +303,7 @@ MACHINE_CONFIG_START(ksayakyu_state::ksayakyu)
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( ksayakyu )
ROM_REGION( 0x20000, "maincpu", 0 )
diff --git a/src/mame/drivers/kyugo.cpp b/src/mame/drivers/kyugo.cpp
index 8c39ed46430..d0c96f25d20 100644
--- a/src/mame/drivers/kyugo.cpp
+++ b/src/mame/drivers/kyugo.cpp
@@ -519,18 +519,18 @@ INTERRUPT_GEN_MEMBER(kyugo_state::vblank_irq)
}
-MACHINE_CONFIG_START(kyugo_state::kyugo_base)
-
+void kyugo_state::kyugo_base(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(kyugo_main_map)
- MCFG_DEVICE_IO_MAP(kyugo_main_portmap)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kyugo_state, vblank_irq)
+ Z80(config, m_maincpu, XTAL(18'432'000)/6); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &kyugo_state::kyugo_main_map);
+ m_maincpu->set_addrmap(AS_IO, &kyugo_state::kyugo_main_portmap);
+ m_maincpu->set_vblank_int("screen", FUNC(kyugo_state::vblank_irq));
- MCFG_DEVICE_ADD("sub", Z80, XTAL(18'432'000)/6) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(gyrodine_sub_map)
- MCFG_DEVICE_IO_MAP(gyrodine_sub_portmap)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(kyugo_state, irq0_line_hold, 4*60)
+ Z80(config, m_subcpu, XTAL(18'432'000)/6); /* verified on pcb */
+ m_subcpu->set_addrmap(AS_PROGRAM, &kyugo_state::gyrodine_sub_map);
+ m_subcpu->set_addrmap(AS_IO, &kyugo_state::gyrodine_sub_portmap);
+ m_subcpu->set_periodic_int(FUNC(kyugo_state::irq0_line_hold), attotime::from_hz(4*60));
config.m_minimum_quantum = attotime::from_hz(6000);
@@ -540,13 +540,13 @@ MACHINE_CONFIG_START(kyugo_state::kyugo_base)
mainlatch.q_out_cb<2>().set_inputline(m_subcpu, INPUT_LINE_RESET).invert();
/* 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, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(kyugo_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(2500) /* not accurate */);
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 36*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(kyugo_state::screen_update));
+ screen.set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_kyugo);
PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256);
@@ -560,51 +560,51 @@ MACHINE_CONFIG_START(kyugo_state::kyugo_base)
ay1.add_route(ALL_OUTPUTS, "mono", 0.30);
AY8910(config, "ay2", XTAL(18'432'000)/12).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(kyugo_state::gyrodine)
+void kyugo_state::gyrodine(machine_config &config)
+{
kyugo_base(config);
/* add watchdog */
WATCHDOG_TIMER(config, "watchdog");
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(gyrodine_main_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &kyugo_state::gyrodine_main_map);
+}
-MACHINE_CONFIG_START(kyugo_state::repulse)
+void kyugo_state::repulse(machine_config &config)
+{
kyugo_base(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("sub")
- MCFG_DEVICE_PROGRAM_MAP(repulse_sub_map)
- MCFG_DEVICE_IO_MAP(repulse_sub_portmap)
-MACHINE_CONFIG_END
+ m_subcpu->set_addrmap(AS_PROGRAM, &kyugo_state::repulse_sub_map);
+ m_subcpu->set_addrmap(AS_IO, &kyugo_state::repulse_sub_portmap);
+}
-MACHINE_CONFIG_START(kyugo_state::srdmissn)
+void kyugo_state::srdmissn(machine_config &config)
+{
kyugo_base(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("sub")
- MCFG_DEVICE_PROGRAM_MAP(srdmissn_sub_map)
- MCFG_DEVICE_IO_MAP(srdmissn_sub_portmap)
-MACHINE_CONFIG_END
+ m_subcpu->set_addrmap(AS_PROGRAM, &kyugo_state::srdmissn_sub_map);
+ m_subcpu->set_addrmap(AS_IO, &kyugo_state::srdmissn_sub_portmap);
+}
-MACHINE_CONFIG_START(kyugo_state::flashgala)
+void kyugo_state::flashgala(machine_config &config)
+{
kyugo_base(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("sub")
- MCFG_DEVICE_PROGRAM_MAP(flashgala_sub_map)
- MCFG_DEVICE_IO_MAP(flashgala_sub_portmap)
-MACHINE_CONFIG_END
+ m_subcpu->set_addrmap(AS_PROGRAM, &kyugo_state::flashgala_sub_map);
+ m_subcpu->set_addrmap(AS_IO, &kyugo_state::flashgala_sub_portmap);
+}
-MACHINE_CONFIG_START(kyugo_state::legend)
+void kyugo_state::legend(machine_config &config)
+{
kyugo_base(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("sub")
- MCFG_DEVICE_PROGRAM_MAP(legend_sub_map)
- MCFG_DEVICE_IO_MAP(srdmissn_sub_portmap)
-MACHINE_CONFIG_END
+ m_subcpu->set_addrmap(AS_PROGRAM, &kyugo_state::legend_sub_map);
+ m_subcpu->set_addrmap(AS_IO, &kyugo_state::srdmissn_sub_portmap);
+}
/*************************************
diff --git a/src/mame/includes/jpmsys5.h b/src/mame/includes/jpmsys5.h
index e354a1a62c4..e94cbcce9c1 100644
--- a/src/mame/includes/jpmsys5.h
+++ b/src/mame/includes/jpmsys5.h
@@ -59,6 +59,7 @@ protected:
required_device<cpu_device> m_maincpu;
required_device_array<acia6850_device, 3> m_acia6850;
optional_device<s16lf01_device> m_vfd;
+ required_device<upd7759_device> m_upd7759;
void jpm_sys5_common_map(address_map &map);
@@ -76,7 +77,6 @@ private:
void m68000_awp_map(address_map &map);
void m68000_awp_map_saa(address_map &map);
- required_device<upd7759_device> m_upd7759;
required_ioport m_direct_port;
optional_device<meters_device> m_meters; //jpmsys5v doesn't use this
output_finder<16 * 16> m_lamps;