summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
author mooglyguy <therealmogminer@gmail.com>2018-09-05 22:13:22 +0200
committer mooglyguy <therealmogminer@gmail.com>2018-09-05 22:13:34 +0200
commit8ffdd1aabf1ffa742923c74b86c45e998d3aef56 (patch)
tree12fbaaf64b0d96c235148f6a7279ea422adb5b38 /src/mame/drivers
parentabd36e0f17ec1d00cb57ae6eab237daf8c71053d (diff)
k033906,k053252,k054321,k056230,kb3600,kr2376: De-MCFG, nw
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/agat.cpp28
-rw-r--r--src/mame/drivers/apple2.cpp28
-rw-r--r--src/mame/drivers/apple2e.cpp28
-rw-r--r--src/mame/drivers/apple2gs.cpp28
-rw-r--r--src/mame/drivers/apple3.cpp26
-rw-r--r--src/mame/drivers/bw12.cpp26
-rw-r--r--src/mame/drivers/dbz.cpp4
-rw-r--r--src/mame/drivers/giclassic.cpp7
-rw-r--r--src/mame/drivers/gijoe.cpp2
-rw-r--r--src/mame/drivers/gticlub.cpp28
-rw-r--r--src/mame/drivers/hazeltin.cpp28
-rw-r--r--src/mame/drivers/hexion.cpp8
-rw-r--r--src/mame/drivers/hornet.cpp6
-rw-r--r--src/mame/drivers/konamigx.cpp34
-rw-r--r--src/mame/drivers/laser3k.cpp26
-rw-r--r--src/mame/drivers/lethal.cpp2
-rw-r--r--src/mame/drivers/moo.cpp6
-rw-r--r--src/mame/drivers/mystwarr.cpp23
-rw-r--r--src/mame/drivers/nwk-tr.cpp7
-rw-r--r--src/mame/drivers/overdriv.cpp4
-rw-r--r--src/mame/drivers/piratesh.cpp4
-rw-r--r--src/mame/drivers/plygonet.cpp2
-rw-r--r--src/mame/drivers/poly.cpp24
-rw-r--r--src/mame/drivers/qdrmfgp.cpp8
-rw-r--r--src/mame/drivers/quickpick5.cpp8
-rw-r--r--src/mame/drivers/rollerg.cpp6
-rw-r--r--src/mame/drivers/rungun.cpp12
-rw-r--r--src/mame/drivers/tasman.cpp10
-rw-r--r--src/mame/drivers/tv910.cpp28
-rw-r--r--src/mame/drivers/vendetta.cpp3
-rw-r--r--src/mame/drivers/xexex.cpp2
-rw-r--r--src/mame/drivers/xmen.cpp4
-rw-r--r--src/mame/drivers/z80ne.cpp46
-rw-r--r--src/mame/drivers/zr107.cpp6
34 files changed, 241 insertions, 271 deletions
diff --git a/src/mame/drivers/agat.cpp b/src/mame/drivers/agat.cpp
index 4a1c687fa50..0f76285fffc 100644
--- a/src/mame/drivers/agat.cpp
+++ b/src/mame/drivers/agat.cpp
@@ -1099,20 +1099,20 @@ MACHINE_CONFIG_START(agat7_state::agat7)
ADDRESS_MAP_BANK(config, m_upperbank).set_map(&agat7_state::inhbank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x3000);
/* keyboard controller -- XXX must be replaced */
- MCFG_DEVICE_ADD(m_ay3600, AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(*this, agat7_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(*this, agat7_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, agat7_state, ay3600_data_ready_w))
- MCFG_AY3600_AKO_CB(WRITELINE(*this, agat7_state, ay3600_ako_w))
+ AY3600(config, m_ay3600, 0);
+ m_ay3600->x0().set_ioport("X0");
+ m_ay3600->x1().set_ioport("X1");
+ m_ay3600->x2().set_ioport("X2");
+ m_ay3600->x3().set_ioport("X3");
+ m_ay3600->x4().set_ioport("X4");
+ m_ay3600->x5().set_ioport("X5");
+ m_ay3600->x6().set_ioport("X6");
+ m_ay3600->x7().set_ioport("X7");
+ m_ay3600->x8().set_ioport("X8");
+ m_ay3600->shift().set(FUNC(agat7_state::ay3600_shift_r));
+ m_ay3600->control().set(FUNC(agat7_state::ay3600_control_r));
+ m_ay3600->data_ready().set(FUNC(agat7_state::ay3600_data_ready_w));
+ m_ay3600->ako().set(FUNC(agat7_state::ay3600_ako_w));
/* repeat timer. 10 Hz per Mymrin's book */
MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", agat7_state, ay3600_repeat, attotime::from_hz(10))
diff --git a/src/mame/drivers/apple2.cpp b/src/mame/drivers/apple2.cpp
index e38d3eec88b..98e02c003cc 100644
--- a/src/mame/drivers/apple2.cpp
+++ b/src/mame/drivers/apple2.cpp
@@ -1410,20 +1410,20 @@ MACHINE_CONFIG_START(napple2_state::apple2_common)
m_softlatch->q_out_cb<7>().set(FUNC(napple2_state::an3_w));
/* keyboard controller */
- MCFG_DEVICE_ADD(A2_KBDC_TAG, AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(*this, napple2_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(*this, napple2_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, napple2_state, ay3600_data_ready_w))
- MCFG_AY3600_AKO_CB(WRITELINE(*this, napple2_state, ay3600_ako_w))
+ AY3600(config, m_ay3600, 0);
+ m_ay3600->x0().set_ioport("X0");
+ m_ay3600->x1().set_ioport("X1");
+ m_ay3600->x2().set_ioport("X2");
+ m_ay3600->x3().set_ioport("X3");
+ m_ay3600->x4().set_ioport("X4");
+ m_ay3600->x5().set_ioport("X5");
+ m_ay3600->x6().set_ioport("X6");
+ m_ay3600->x7().set_ioport("X7");
+ m_ay3600->x8().set_ioport("X8");
+ m_ay3600->shift().set(FUNC(napple2_state::ay3600_shift_r));
+ m_ay3600->control().set(FUNC(napple2_state::ay3600_control_r));
+ m_ay3600->data_ready().set(FUNC(napple2_state::ay3600_data_ready_w));
+ m_ay3600->ako().set(FUNC(napple2_state::ay3600_ako_w));
/* repeat timer. 15 Hz from page 90 of "The Apple II Circuit Description */
MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", napple2_state, ay3600_repeat, attotime::from_hz(15))
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index 40f39bd9fd3..ce5cef530b2 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -4040,20 +4040,20 @@ MACHINE_CONFIG_START(apple2e_state::apple2e)
ADDRESS_MAP_BANK(config, A2_UPPERBANK_TAG).set_map(&apple2e_state::inhbank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x3000);
/* keyboard controller */
- MCFG_DEVICE_ADD("ay3600", AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(*this, apple2e_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(*this, apple2e_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, apple2e_state, ay3600_data_ready_w))
- MCFG_AY3600_AKO_CB(WRITELINE(*this, apple2e_state, ay3600_ako_w))
+ ay3600_device &kbdc(AY3600(config, "ay3600", 0));
+ kbdc.x0().set_ioport("X0");
+ kbdc.x1().set_ioport("X1");
+ kbdc.x2().set_ioport("X2");
+ kbdc.x3().set_ioport("X3");
+ kbdc.x4().set_ioport("X4");
+ kbdc.x5().set_ioport("X5");
+ kbdc.x6().set_ioport("X6");
+ kbdc.x7().set_ioport("X7");
+ kbdc.x8().set_ioport("X8");
+ kbdc.shift().set(FUNC(apple2e_state::ay3600_shift_r));
+ kbdc.control().set(FUNC(apple2e_state::ay3600_control_r));
+ kbdc.data_ready().set(FUNC(apple2e_state::ay3600_data_ready_w));
+ kbdc.ako().set(FUNC(apple2e_state::ay3600_ako_w));
/* repeat timer. 15 Hz from page 7-15 of "Understanding the Apple IIe" */
MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", apple2e_state, ay3600_repeat, attotime::from_hz(15))
diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp
index 0f7524bcfd8..39dd0e8f967 100644
--- a/src/mame/drivers/apple2gs.cpp
+++ b/src/mame/drivers/apple2gs.cpp
@@ -4550,20 +4550,20 @@ MACHINE_CONFIG_START( apple2gs_state::apple2gs )
#if !RUN_ADB_MICRO
/* keyboard controller */
- MCFG_DEVICE_ADD("ay3600", AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(*this, apple2gs_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(*this, apple2gs_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, apple2gs_state, ay3600_data_ready_w))
- MCFG_AY3600_AKO_CB(WRITELINE(*this, apple2gs_state, ay3600_ako_w))
+ AY3600(config, m_ay3600, 0);
+ m_ay3600->x0().set_ioport("X0");
+ m_ay3600->x1().set_ioport("X1");
+ m_ay3600->x2().set_ioport("X2");
+ m_ay3600->x3().set_ioport("X3");
+ m_ay3600->x4().set_ioport("X4");
+ m_ay3600->x5().set_ioport("X5");
+ m_ay3600->x6().set_ioport("X6");
+ m_ay3600->x7().set_ioport("X7");
+ m_ay3600->x8().set_ioport("X8");
+ m_ay3600->shift().set(FUNC(apple2gs_state::ay3600_shift_r));
+ m_ay3600->control().set(FUNC(apple2gs_state::ay3600_control_r));
+ m_ay3600->data_ready().set(FUNC(apple2gs_state::ay3600_data_ready_w));
+ m_ay3600->ako().set(FUNC(apple2gs_state::ay3600_ako_w));
/* repeat timer. 15 Hz from page 7-15 of "Understanding the Apple IIe" */
MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", apple2gs_state, ay3600_repeat, attotime::from_hz(15))
diff --git a/src/mame/drivers/apple3.cpp b/src/mame/drivers/apple3.cpp
index 083cda9b91a..d7931e7e535 100644
--- a/src/mame/drivers/apple3.cpp
+++ b/src/mame/drivers/apple3.cpp
@@ -78,19 +78,19 @@ MACHINE_CONFIG_START(apple3_state::apple3)
MCFG_PALETTE_INIT_OWNER(apple3_state, apple3 )
/* keyboard controller */
- MCFG_DEVICE_ADD("ay3600", AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(*this, apple3_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(*this, apple3_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, apple3_state, ay3600_data_ready_w))
+ AY3600(config, m_ay3600, 0);
+ m_ay3600->x0().set_ioport("X0");
+ m_ay3600->x1().set_ioport("X1");
+ m_ay3600->x2().set_ioport("X2");
+ m_ay3600->x3().set_ioport("X3");
+ m_ay3600->x4().set_ioport("X4");
+ m_ay3600->x5().set_ioport("X5");
+ m_ay3600->x6().set_ioport("X6");
+ m_ay3600->x7().set_ioport("X7");
+ m_ay3600->x8().set_ioport("X8");
+ m_ay3600->shift().set(FUNC(apple3_state::ay3600_shift_r));
+ m_ay3600->control().set(FUNC(apple3_state::ay3600_control_r));
+ m_ay3600->data_ready().set(FUNC(apple3_state::ay3600_data_ready_w));
/* slot bus */
MCFG_DEVICE_ADD(m_a2bus, A2BUS, 0)
diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp
index a5a3769683e..6285c6d1825 100644
--- a/src/mame/drivers/bw12.cpp
+++ b/src/mame/drivers/bw12.cpp
@@ -606,19 +606,19 @@ MACHINE_CONFIG_START(bw12_state::common)
MCFG_PIT8253_CLK2(XTAL(1'843'200))
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, bw12_state, pit_out2_w))
- MCFG_DEVICE_ADD(AY3600PRO002_TAG, AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(*this, bw12_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(*this, bw12_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, bw12_state, ay3600_data_ready_w))
+ AY3600(config, m_kbc, 0);
+ m_kbc->x0().set_ioport("X0");
+ m_kbc->x1().set_ioport("X1");
+ m_kbc->x2().set_ioport("X2");
+ m_kbc->x3().set_ioport("X3");
+ m_kbc->x4().set_ioport("X4");
+ m_kbc->x5().set_ioport("X5");
+ m_kbc->x6().set_ioport("X6");
+ m_kbc->x7().set_ioport("X7");
+ m_kbc->x8().set_ioport("X8");
+ m_kbc->shift().set(FUNC(bw12_state::ay3600_shift_r));
+ m_kbc->control().set(FUNC(bw12_state::ay3600_control_r));
+ m_kbc->data_ready().set(FUNC(bw12_state::ay3600_data_ready_w));
MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
diff --git a/src/mame/drivers/dbz.cpp b/src/mame/drivers/dbz.cpp
index c8508b62dcd..798c7f20deb 100644
--- a/src/mame/drivers/dbz.cpp
+++ b/src/mame/drivers/dbz.cpp
@@ -374,8 +374,8 @@ MACHINE_CONFIG_START(dbz_state::dbz)
MCFG_K053936_WRAP(1)
MCFG_K053936_OFFSETS(-46, -16)
- MCFG_DEVICE_ADD("k053252", K053252, 16000000/2)
- MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, dbz_state, dbz_irq2_ack_w))
+ K053252(config, m_k053252, 16000000/2);
+ m_k053252->int1_ack().set(FUNC(dbz_state::dbz_irq2_ack_w));
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/giclassic.cpp b/src/mame/drivers/giclassic.cpp
index 1391bbd5c24..d21e49b1191 100644
--- a/src/mame/drivers/giclassic.cpp
+++ b/src/mame/drivers/giclassic.cpp
@@ -353,11 +353,8 @@ MACHINE_CONFIG_START(giclassicsvr_state::giclassvr)
MCFG_K055673_CONFIG("gfx2", K055673_LAYOUT_PS, -60, 24)
MCFG_K055673_PALETTE("palette")
- MCFG_DEVICE_ADD("k053252a", K053252, XTAL(32'000'000)/4)
- MCFG_K053252_OFFSETS(40, 16) // TODO
-
- MCFG_DEVICE_ADD("k053252b", K053252, XTAL(32'000'000)/4)
- MCFG_K053252_OFFSETS(40, 16) // TODO
+ K053252(config, "k053252a", XTAL(32'000'000)/4).set_offsets(40, 16); // TODO
+ K053252(config, "k053252b", XTAL(32'000'000)/4).set_offsets(40, 16); // TODO
MACHINE_CONFIG_END
ROM_START( giclasex )
diff --git a/src/mame/drivers/gijoe.cpp b/src/mame/drivers/gijoe.cpp
index 8438d5c839b..0d90c778c09 100644
--- a/src/mame/drivers/gijoe.cpp
+++ b/src/mame/drivers/gijoe.cpp
@@ -333,7 +333,7 @@ MACHINE_CONFIG_START(gijoe_state::gijoe)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
+ K054321(config, m_k054321, "lspeaker", "rspeaker");
MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000))
MCFG_K054539_TIMER_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp
index 23d689a92ea..ec88a735c21 100644
--- a/src/mame/drivers/gticlub.cpp
+++ b/src/mame/drivers/gticlub.cpp
@@ -255,6 +255,7 @@ public:
m_eeprom(*this, "eeprom"),
m_palette(*this, "palette"),
m_konppc(*this, "konppc"),
+ m_k056230(*this, "k056230"),
m_k001005(*this, "k001005"),
m_k001006_1(*this, "k001006_1"),
m_k001006_2(*this, "k001006_2"),
@@ -296,6 +297,7 @@ private:
required_device<eeprom_serial_93cxx_device> m_eeprom;
required_device<palette_device> m_palette;
required_device<konppc_device> m_konppc;
+ required_device<k056230_device> m_k056230;
optional_device<k001005_device> m_k001005;
optional_device<k001006_device> m_k001006_1;
optional_device<k001006_device> m_k001006_2;
@@ -533,8 +535,8 @@ void gticlub_state::gticlub_map(address_map &map)
map(0x78080000, 0x7808000f).rw(m_k001006_2, FUNC(k001006_device::read), FUNC(k001006_device::write));
map(0x780c0000, 0x780c0003).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_comm_r_ppc), FUNC(konppc_device::cgboard_dsp_comm_w_ppc));
map(0x7e000000, 0x7e003fff).rw(FUNC(gticlub_state::sysreg_r), FUNC(gticlub_state::sysreg_w));
- map(0x7e008000, 0x7e009fff).rw("k056230", FUNC(k056230_device::read), FUNC(k056230_device::write));
- map(0x7e00a000, 0x7e00bfff).rw("k056230", FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w));
+ map(0x7e008000, 0x7e009fff).rw(m_k056230, FUNC(k056230_device::read), FUNC(k056230_device::write));
+ map(0x7e00a000, 0x7e00bfff).rw(m_k056230, FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w));
map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w));
map(0x7f000000, 0x7f3fffff).rom().region("user2", 0); /* Data ROM */
map(0x7f800000, 0x7f9fffff).rom().share("share2");
@@ -551,8 +553,8 @@ void gticlub_state::hangplt_map(address_map &map)
map(0x78000000, 0x7800ffff).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_shared_r_ppc), FUNC(konppc_device::cgboard_dsp_shared_w_ppc));
map(0x780c0000, 0x780c0003).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_comm_r_ppc), FUNC(konppc_device::cgboard_dsp_comm_w_ppc));
map(0x7e000000, 0x7e003fff).rw(FUNC(gticlub_state::sysreg_r), FUNC(gticlub_state::sysreg_w));
- map(0x7e008000, 0x7e009fff).rw("k056230", FUNC(k056230_device::read), FUNC(k056230_device::write));
- map(0x7e00a000, 0x7e00bfff).rw("k056230", FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w));
+ map(0x7e008000, 0x7e009fff).rw(m_k056230, FUNC(k056230_device::read), FUNC(k056230_device::write));
+ map(0x7e00a000, 0x7e00bfff).rw(m_k056230, FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w));
map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w));
map(0x7f000000, 0x7f3fffff).rom().region("user2", 0); /* Data ROM */
map(0x7f800000, 0x7f9fffff).rom().share("share2");
@@ -977,8 +979,7 @@ MACHINE_CONFIG_START(gticlub_state::gticlub)
m_adc1038->set_input_callback(FUNC(gticlub_state::adc1038_input_callback));
m_adc1038->set_gti_club_hack(true);
- MCFG_DEVICE_ADD("k056230", K056230, 0)
- MCFG_K056230_CPU("maincpu")
+ K056230(config, m_k056230, "maincpu");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1030,10 +1031,7 @@ MACHINE_CONFIG_START(gticlub_state::thunderh)
m_adc1038->set_gti_club_hack(false);
- MCFG_DEVICE_REMOVE("k056230")
- MCFG_DEVICE_ADD("k056230", K056230, 0)
- MCFG_K056230_CPU("maincpu")
- MCFG_K056230_HACK(1)
+ m_k056230->set_thunderh_hack(true);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(gticlub_state::slrasslt)
@@ -1084,8 +1082,7 @@ MACHINE_CONFIG_START(gticlub_state::hangplt)
ADC1038(config, m_adc1038, 0);
m_adc1038->set_input_callback(FUNC(gticlub_state::adc1038_input_callback));
- MCFG_DEVICE_ADD("k056230", K056230, 0)
- MCFG_K056230_CPU("maincpu")
+ K056230(config, m_k056230, "maincpu");
MCFG_DEVICE_ADD("voodoo0", VOODOO_1, STD_VOODOO_1_CLOCK)
MCFG_VOODOO_FBMEM(2)
@@ -1101,11 +1098,8 @@ MACHINE_CONFIG_START(gticlub_state::hangplt)
MCFG_VOODOO_CPU_TAG("dsp2")
MCFG_VOODOO_VBLANK_CB(WRITELINE(*this, gticlub_state,voodoo_vblank_1))
- MCFG_DEVICE_ADD("k033906_1", K033906, 0)
- MCFG_K033906_VOODOO("voodoo0")
-
- MCFG_DEVICE_ADD("k033906_2", K033906, 0)
- MCFG_K033906_VOODOO("voodoo1")
+ K033906(config, "k033906_1", 0, "voodoo0");
+ K033906(config, "k033906_2", 0, "voodoo1");
/* video hardware */
MCFG_PALETTE_ADD("palette", 65536)
diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp
index ba8c04a5f0d..b7e300c23f0 100644
--- a/src/mame/drivers/hazeltin.cpp
+++ b/src/mame/drivers/hazeltin.cpp
@@ -5,7 +5,7 @@
Hazeltine 1500
original machine (c) 1977 Hazeltine Corporation
- perliminary driver by Ryan Holtz
+ preliminary driver by Ryan Holtz
TODO (roughly in order of importance):
- Figure out the correct keyboard decoding.
@@ -762,19 +762,19 @@ MACHINE_CONFIG_START(hazl1500_state::hazl1500)
MCFG_NETLIST_ANALOG_OUTPUT(NETLIST_TAG, "tvinterq", "tvinterq", hazl1500_state, tvinterq_cb, "")
/* keyboard controller */
- MCFG_DEVICE_ADD(KBDC_TAG, AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(*this, hazl1500_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(*this, hazl1500_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, hazl1500_state, ay3600_data_ready_w))
+ AY3600(config, m_kbdc, 0);
+ m_kbdc->x0().set_ioport("X0");
+ m_kbdc->x1().set_ioport("X1");
+ m_kbdc->x2().set_ioport("X2");
+ m_kbdc->x3().set_ioport("X3");
+ m_kbdc->x4().set_ioport("X4");
+ m_kbdc->x5().set_ioport("X5");
+ m_kbdc->x6().set_ioport("X6");
+ m_kbdc->x7().set_ioport("X7");
+ m_kbdc->x8().set_ioport("X8");
+ m_kbdc->shift().set(FUNC(hazl1500_state::ay3600_shift_r));
+ m_kbdc->control().set(FUNC(hazl1500_state::ay3600_control_r));
+ m_kbdc->data_ready().set(FUNC(hazl1500_state::ay3600_data_ready_w));
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hexion.cpp b/src/mame/drivers/hexion.cpp
index 95592da7c52..468e13b7c6e 100644
--- a/src/mame/drivers/hexion.cpp
+++ b/src/mame/drivers/hexion.cpp
@@ -261,10 +261,10 @@ MACHINE_CONFIG_START(hexion_state::hexion)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hexion_state, scanline, "screen", 0, 1)
MCFG_WATCHDOG_ADD("watchdog")
- MCFG_DEVICE_ADD("k053252", K053252, XTAL(24'000'000)/2) /* K053252, X0-010(?) @8D, xtal verified, divider not verified */
- MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, hexion_state, irq_ack_w))
- MCFG_K053252_INT2_ACK_CB(WRITELINE(*this, hexion_state, nmi_ack_w))
- MCFG_K053252_INT_TIME_CB(WRITE8(*this, hexion_state, ccu_int_time_w))
+ K053252(config, m_k053252, XTAL(24'000'000)/2); /* K053252, X0-010(?) @8D, xtal verified, divider not verified */
+ m_k053252->int1_ack().set(FUNC(hexion_state::irq_ack_w));
+ m_k053252->int2_ack().set(FUNC(hexion_state::nmi_ack_w));
+ m_k053252->int_time().set(FUNC(hexion_state::ccu_int_time_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp
index 33e5ba1befb..1821febea98 100644
--- a/src/mame/drivers/hornet.cpp
+++ b/src/mame/drivers/hornet.cpp
@@ -1091,8 +1091,7 @@ MACHINE_CONFIG_START(hornet_state::hornet)
MCFG_VOODOO_CPU_TAG("dsp")
MCFG_VOODOO_VBLANK_CB(WRITELINE(*this, hornet_state,voodoo_vblank_0))
- MCFG_DEVICE_ADD("k033906_1", K033906, 0)
- MCFG_K033906_VOODOO("voodoo0")
+ K033906(config, "k033906_1", 0, "voodoo0");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1157,8 +1156,7 @@ MACHINE_CONFIG_START(hornet_state::hornet_2board)
MCFG_VOODOO_CPU_TAG("dsp2")
MCFG_VOODOO_VBLANK_CB(WRITELINE(*this, hornet_state,voodoo_vblank_1))
- MCFG_DEVICE_ADD("k033906_2", K033906, 0)
- MCFG_K033906_VOODOO("voodoo1")
+ K033906(config, "k033906_2", 0, "voodoo1");
/* video hardware */
MCFG_PALETTE_MODIFY("palette")
diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp
index a7278de1bfc..a606b396202 100644
--- a/src/mame/drivers/konamigx.cpp
+++ b/src/mame/drivers/konamigx.cpp
@@ -1624,11 +1624,11 @@ MACHINE_CONFIG_START(konamigx_state::konamigx)
MCFG_DEVICE_ADD("dasp", TMS57002, MASTER_CLOCK/2)
MCFG_DEVICE_DATA_MAP(gxtmsmap)
- MCFG_DEVICE_ADD("k053252", K053252, MASTER_CLOCK/4)
- MCFG_K053252_OFFSETS(24, 16)
- MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, konamigx_state, vblank_irq_ack_w))
- MCFG_K053252_INT2_ACK_CB(WRITELINE(*this, konamigx_state, hblank_irq_ack_w))
- MCFG_VIDEO_SET_SCREEN("screen")
+ K053252(config, m_k053252, MASTER_CLOCK/4);
+ m_k053252->set_offsets(24, 16);
+ m_k053252->int1_ack().set(FUNC(konamigx_state::vblank_irq_ack_w));
+ m_k053252->int2_ack().set(FUNC(konamigx_state::hblank_irq_ack_w));
+ m_k053252->set_screen("screen");
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -1736,8 +1736,7 @@ MACHINE_CONFIG_START(konamigx_state::dragoonj)
MCFG_SCREEN_MODIFY("screen")
MCFG_VIDEO_START_OVERRIDE(konamigx_state, dragoonj)
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_OFFSETS(24+16, 16)
+ m_k053252->set_offsets(24+16, 16);
MCFG_DEVICE_MODIFY("k056832")
MCFG_K056832_CONFIG("gfx1", K056832_BPP_5, 1, 0)
@@ -1809,8 +1808,7 @@ MACHINE_CONFIG_START(konamigx_state::racinfrc)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_racinfrc)
MCFG_VIDEO_START_OVERRIDE(konamigx_state, racinfrc)
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_OFFSETS(24-8+16, 0)
+ m_k053252->set_offsets(24-8+16, 0);
MCFG_DEVICE_MODIFY("k056832")
MCFG_K056832_CONFIG("gfx1", K056832_BPP_6, 0, 0)
@@ -1837,9 +1835,8 @@ MACHINE_CONFIG_START(konamigx_state::gxtype3)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_type3)
MCFG_VIDEO_START_OVERRIDE(konamigx_state, konamigx_type3)
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_OFFSETS(0, 16)
- MCFG_K053252_SET_SLAVE_SCREEN("screen2")
+ m_k053252->set_offsets(0, 16);
+ m_k053252->set_slave_screen("screen2");
MCFG_DEVICE_MODIFY("k056832")
MCFG_K056832_CONFIG("gfx1", K056832_BPP_6, 0, 2)
@@ -1896,10 +1893,8 @@ MACHINE_CONFIG_START(konamigx_state::gxtype4)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_type4)
MCFG_VIDEO_START_OVERRIDE(konamigx_state, konamigx_type4)
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_OFFSETS(0, 16)
- MCFG_K053252_SET_SLAVE_SCREEN("screen2")
-
+ m_k053252->set_offsets(0, 16);
+ m_k053252->set_slave_screen("screen2");
MCFG_DEVICE_MODIFY("k056832")
MCFG_K056832_CONFIG("gfx1", K056832_BPP_8, 0, 0)
@@ -1916,9 +1911,7 @@ MACHINE_CONFIG_START(konamigx_state::gxtype4_vsn)
//MCFG_SCREEN_SIZE(128*8, 32*8)
//MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16)
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_OFFSETS(0, 16)
-
+ m_k053252->set_offsets(0, 16);
MCFG_SCREEN_MODIFY("screen2")
MCFG_SCREEN_SIZE(1024, 1024)
@@ -1946,8 +1939,7 @@ MACHINE_CONFIG_START(konamigx_state::winspike)
//MCFG_SCREEN_MODIFY("screen")
//MCFG_SCREEN_VISIBLE_AREA(38, 38+384-1, 16, 16+224-1)
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_OFFSETS(24+15, 16)
+ m_k053252->set_offsets(24+15, 16);
MCFG_DEVICE_MODIFY("k056832")
MCFG_K056832_CB(konamigx_state, alpha_tile_callback)
diff --git a/src/mame/drivers/laser3k.cpp b/src/mame/drivers/laser3k.cpp
index c3da598e049..fdc27124c5f 100644
--- a/src/mame/drivers/laser3k.cpp
+++ b/src/mame/drivers/laser3k.cpp
@@ -995,19 +995,19 @@ MACHINE_CONFIG_START(laser3k_state::laser3k)
RAM(config, "mainram").set_default_size("192K");
/* the 8048 isn't dumped, so substitute modified real Apple II h/w */
- MCFG_DEVICE_ADD("ay3600", AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(*this, laser3k_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(*this, laser3k_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, laser3k_state, ay3600_data_ready_w))
+ AY3600(config, m_ay3600, 0);
+ m_ay3600->x0().set_ioport("X0");
+ m_ay3600->x1().set_ioport("X1");
+ m_ay3600->x2().set_ioport("X2");
+ m_ay3600->x3().set_ioport("X3");
+ m_ay3600->x4().set_ioport("X4");
+ m_ay3600->x5().set_ioport("X5");
+ m_ay3600->x6().set_ioport("X6");
+ m_ay3600->x7().set_ioport("X7");
+ m_ay3600->x8().set_ioport("X8");
+ m_ay3600->shift().set(FUNC(laser3k_state::ay3600_shift_r));
+ m_ay3600->control().set(FUNC(laser3k_state::ay3600_control_r));
+ m_ay3600->data_ready().set(FUNC(laser3k_state::ay3600_data_ready_w));
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/lethal.cpp b/src/mame/drivers/lethal.cpp
index 4fef5090a29..1545c1b1e8f 100644
--- a/src/mame/drivers/lethal.cpp
+++ b/src/mame/drivers/lethal.cpp
@@ -533,7 +533,7 @@ MACHINE_CONFIG_START(lethal_state::lethalen)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
+ K054321(config, m_k054321, "lspeaker", "rspeaker");
MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000))
MCFG_K054539_TIMER_HANDLER(INPUTLINE("soundcpu", INPUT_LINE_NMI))
diff --git a/src/mame/drivers/moo.cpp b/src/mame/drivers/moo.cpp
index 6e18fbe8f27..7a95c7efafd 100644
--- a/src/mame/drivers/moo.cpp
+++ b/src/mame/drivers/moo.cpp
@@ -509,8 +509,8 @@ MACHINE_CONFIG_START(moo_state::moo)
EEPROM_ER5911_8BIT(config, "eeprom");
- MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4) // 8MHz
- MCFG_K053252_OFFSETS(40, 16)
+ K053252(config, m_k053252, XTAL(32'000'000)/4); // 8MHz
+ m_k053252->set_offsets(40, 16);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -546,7 +546,7 @@ MACHINE_CONFIG_START(moo_state::moo)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
+ K054321(config, m_k054321, "lspeaker", "rspeaker");
MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(32'000'000)/8) // 4MHz verified
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp
index d1b78246187..4206ce5a508 100644
--- a/src/mame/drivers/mystwarr.cpp
+++ b/src/mame/drivers/mystwarr.cpp
@@ -954,8 +954,8 @@ MACHINE_CONFIG_START(mystwarr_state::mystwarr)
EEPROM_ER5911_8BIT(config, "eeprom");
- MCFG_DEVICE_ADD("k053252", K053252, 6000000) // 6 MHz?
- MCFG_K053252_OFFSETS(24, 16)
+ K053252(config, m_k053252, 6000000); // 6 MHz?
+ m_k053252->set_offsets(24, 16);
MCFG_MACHINE_START_OVERRIDE(mystwarr_state,mystwarr)
MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,mystwarr)
@@ -996,7 +996,7 @@ MACHINE_CONFIG_START(mystwarr_state::mystwarr)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
+ K054321(config, m_k054321, "lspeaker", "rspeaker");
MCFG_DEVICE_ADD("k054539_1", K054539, XTAL(18'432'000))
MCFG_DEVICE_ADDRESS_MAP(0, mystwarr_k054539_map)
@@ -1015,8 +1015,8 @@ MACHINE_CONFIG_START(mystwarr_state::viostorm)
MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,viostorm)
- MCFG_DEVICE_REPLACE("k053252", K053252, 16000000/2)
- MCFG_K053252_OFFSETS(40, 16)
+ m_k053252->set_clock(16000000/2);
+ m_k053252->set_offsets(40, 16);
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
@@ -1053,8 +1053,7 @@ MACHINE_CONFIG_START(mystwarr_state::metamrph)
MCFG_TIMER_MODIFY("scantimer")
MCFG_TIMER_DRIVER_CALLBACK(mystwarr_state, metamrph_interrupt)
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_OFFSETS(24, 15)
+ m_k053252->set_offsets(24, 15);
MCFG_K053250_ADD("k053250_1", "palette", "screen", -7, 0)
@@ -1087,8 +1086,7 @@ MACHINE_CONFIG_START(mystwarr_state::dadandrn)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mystwarr_state, ddd_interrupt)
MCFG_DEVICE_REMOVE("scantimer")
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_OFFSETS(24, 16+1)
+ m_k053252->set_offsets(24, 16+1);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dadandrn)
@@ -1121,8 +1119,7 @@ MACHINE_CONFIG_START(mystwarr_state::gaiapols)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mystwarr_state, ddd_interrupt)
MCFG_DEVICE_REMOVE("scantimer")
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_OFFSETS(40, 16)
+ m_k053252->set_offsets(40, 16);
MCFG_K054000_ADD("k054000")
@@ -1161,8 +1158,8 @@ MACHINE_CONFIG_START(mystwarr_state::martchmp)
MCFG_DEVICE_MODIFY("soundcpu")
MCFG_DEVICE_PROGRAM_MAP(martchmp_sound_map)
- MCFG_DEVICE_REPLACE("k053252", K053252, 16000000/2)
- MCFG_K053252_OFFSETS(32, 24-1)
+ m_k053252->set_clock(16000000/2);
+ m_k053252->set_offsets(32, 24-1);
MCFG_PALETTE_MODIFY("palette")
MCFG_PALETTE_FORMAT(XRGB)
diff --git a/src/mame/drivers/nwk-tr.cpp b/src/mame/drivers/nwk-tr.cpp
index 48d5a3c146b..6695c2b21d4 100644
--- a/src/mame/drivers/nwk-tr.cpp
+++ b/src/mame/drivers/nwk-tr.cpp
@@ -854,11 +854,8 @@ MACHINE_CONFIG_START(nwktr_state::nwktr)
ADC12138(config, m_adc12138, 0);
m_adc12138->set_ipt_convert_callback(FUNC(nwktr_state::adc12138_input_callback));
- MCFG_DEVICE_ADD("k033906_1", K033906, 0)
- MCFG_K033906_VOODOO("voodoo0")
-
- MCFG_DEVICE_ADD("k033906_2", K033906, 0)
- MCFG_K033906_VOODOO("voodoo1")
+ K033906(config, "k033906_1", 0, "voodoo0");
+ K033906(config, "k033906_2", 0, "voodoo1");
/* video hardware */
MCFG_DEVICE_ADD("voodoo0", VOODOO_1, STD_VOODOO_1_CLOCK)
diff --git a/src/mame/drivers/overdriv.cpp b/src/mame/drivers/overdriv.cpp
index 8657115fdf7..cff5b92b5c0 100644
--- a/src/mame/drivers/overdriv.cpp
+++ b/src/mame/drivers/overdriv.cpp
@@ -377,8 +377,8 @@ MACHINE_CONFIG_START(overdriv_state::overdriv)
MCFG_K053250_ADD("k053250_1", "palette", "screen", 0, 0)
MCFG_K053250_ADD("k053250_2", "palette", "screen", 0, 0)
- MCFG_DEVICE_ADD("k053252", K053252, XTAL(24'000'000)/4)
- MCFG_K053252_OFFSETS(13*8, 2*8)
+ K053252(config, m_k053252, XTAL(24'000'000)/4);
+ m_k053252->set_offsets(13*8, 2*8);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp
index 13c1294f564..824b2d40464 100644
--- a/src/mame/drivers/piratesh.cpp
+++ b/src/mame/drivers/piratesh.cpp
@@ -606,8 +606,8 @@ MACHINE_CONFIG_START(piratesh_state::piratesh)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4)
- MCFG_K053252_OFFSETS(40, 16) // TODO
+ K053252(config, m_k053252, XTAL(32'000'000)/4);
+ m_k053252->set_offsets(40, 16); // TODO
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
diff --git a/src/mame/drivers/plygonet.cpp b/src/mame/drivers/plygonet.cpp
index 223f9a387bb..61b18389a5b 100644
--- a/src/mame/drivers/plygonet.cpp
+++ b/src/mame/drivers/plygonet.cpp
@@ -591,7 +591,7 @@ MACHINE_CONFIG_START(polygonet_state::plygonet)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
+ K054321(config, m_k054321, "lspeaker", "rspeaker");
MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000))
MCFG_K054539_TIMER_HANDLER(WRITELINE(*this, polygonet_state, k054539_nmi_gen))
diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp
index 7ad329fd08a..3b4765af391 100644
--- a/src/mame/drivers/poly.cpp
+++ b/src/mame/drivers/poly.cpp
@@ -301,18 +301,18 @@ MACHINE_CONFIG_START(poly_state::poly)
//m_ptm->irq_callback().set("irqs", FUNC(input_merger_device::in_w<1>));
/* keyboard encoder */
- //MCFG_DEVICE_ADD("kr2376", KR2376_12, 50000)
- //MCFG_KR2376_MATRIX_X0(IOPORT("X0"))
- //MCFG_KR2376_MATRIX_X1(IOPORT("X1"))
- //MCFG_KR2376_MATRIX_X2(IOPORT("X2"))
- //MCFG_KR2376_MATRIX_X3(IOPORT("X3"))
- //MCFG_KR2376_MATRIX_X4(IOPORT("X4"))
- //MCFG_KR2376_MATRIX_X5(IOPORT("X5"))
- //MCFG_KR2376_MATRIX_X6(IOPORT("X6"))
- //MCFG_KR2376_MATRIX_X7(IOPORT("X7"))
- //MCFG_KR2376_SHIFT_CB(READLINE(*this, poly_state, kbd_shift_r))
- //MCFG_KR2376_CONTROL_CB(READLINE(*this, poly_state, kbd_control_r))
- //MCFG_KR2376_STROBE_CB(WRITELINE("pia1", pia6821_device, cb1_w))
+ //KR2376_12(config, m_kr2376, 50000);
+ //m_kr2376->x<0>().set_ioport("X0");
+ //m_kr2376->x<1>().set_ioport("X1");
+ //m_kr2376->x<2>().set_ioport("X2");
+ //m_kr2376->x<3>().set_ioport("X3");
+ //m_kr2376->x<4>().set_ioport("X4");
+ //m_kr2376->x<5>().set_ioport("X5");
+ //m_kr2376->x<6>().set_ioport("X6");
+ //m_kr2376->x<7>().set_ioport("X7");
+ //m_kr2376->shift().set(FUNC(poly_state::kbd_shift_r));
+ //m_kr2376->control().set(FUNC(poly_state::kbd_control_r));
+ //m_kr2376->strobe().set("pia1", FUNC(pia6821_device::cb1_w));
/* generic keyboard until ROM in KR2376-12 is known */
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
diff --git a/src/mame/drivers/qdrmfgp.cpp b/src/mame/drivers/qdrmfgp.cpp
index ef08a1191e5..8ef7abaf449 100644
--- a/src/mame/drivers/qdrmfgp.cpp
+++ b/src/mame/drivers/qdrmfgp.cpp
@@ -555,8 +555,8 @@ MACHINE_CONFIG_START(qdrmfgp_state::qdrmfgp)
MCFG_K056832_CONFIG("gfx1", K056832_BPP_4dj, 1, 0)
MCFG_K056832_PALETTE("palette")
- MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4)
- MCFG_K053252_OFFSETS(40, 16)
+ K053252(config, m_k053252, XTAL(32'000'000)/4);
+ m_k053252->set_offsets(40, 16);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -601,8 +601,8 @@ MACHINE_CONFIG_START(qdrmfgp_state::qdrmfgp2)
MCFG_K056832_CONFIG("gfx1", K056832_BPP_4dj, 1, 0)
MCFG_K056832_PALETTE("palette")
- MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4)
- MCFG_K053252_OFFSETS(40, 16)
+ K053252(config, m_k053252, XTAL(32'000'000)/4);
+ m_k053252->set_offsets(40, 16);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/quickpick5.cpp b/src/mame/drivers/quickpick5.cpp
index 748792ef19d..4e1ef607d08 100644
--- a/src/mame/drivers/quickpick5.cpp
+++ b/src/mame/drivers/quickpick5.cpp
@@ -406,10 +406,10 @@ MACHINE_CONFIG_START(quickpick5_state::quickpick5)
MCFG_DEVICE_PROGRAM_MAP(quickpick5_main)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", quickpick5_state, scanline, "screen", 0, 1)
- MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4) /* K053252, xtal verified, divider not verified */
- MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, quickpick5_state, vbl_ack_w))
- MCFG_K053252_INT2_ACK_CB(WRITELINE(*this, quickpick5_state, nmi_ack_w))
- MCFG_K053252_INT_TIME_CB(WRITE8(*this, quickpick5_state, ccu_int_time_w))
+ K053252(config, m_k053252, XTAL(32'000'000)/4); /* K053252, xtal verified, divider not verified */
+ m_k053252->int1_ack().set(FUNC(quickpick5_state::vbl_ack_w));
+ m_k053252->int2_ack().set(FUNC(quickpick5_state::nmi_ack_w));
+ m_k053252->int_time().set(FUNC(quickpick5_state::ccu_int_time_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/rollerg.cpp b/src/mame/drivers/rollerg.cpp
index 2ab7515783f..3acb0a132b6 100644
--- a/src/mame/drivers/rollerg.cpp
+++ b/src/mame/drivers/rollerg.cpp
@@ -281,9 +281,9 @@ MACHINE_CONFIG_START(rollerg_state::rollerg)
MCFG_K051316_OFFSETS(22, 1)
MCFG_K051316_CB(rollerg_state, zoom_callback)
- MCFG_DEVICE_ADD("k053252", K053252, 3000000*2)
- MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, rollerg_state,rollerg_irq_ack_w))
- MCFG_K053252_OFFSETS(14*8, 2*8)
+ K053252(config, m_k053252, 3000000*2);
+ m_k053252->int1_ack().set(FUNC(rollerg_state::rollerg_irq_ack_w));
+ m_k053252->set_offsets(14*8, 2*8);
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp
index 493344aefcb..7a053fed964 100644
--- a/src/mame/drivers/rungun.cpp
+++ b/src/mame/drivers/rungun.cpp
@@ -438,9 +438,9 @@ MACHINE_CONFIG_START(rungun_state::rng)
MCFG_K055673_PALETTE("palette")
MCFG_K055673_SET_SCREEN("screen")
- MCFG_DEVICE_ADD("k053252", K053252, 16000000/2)
- MCFG_K053252_OFFSETS(9*8, 24)
- MCFG_VIDEO_SET_SCREEN("screen")
+ K053252(config, m_k053252, 16000000/2);
+ m_k053252->set_offsets(9*8, 24);
+ m_k053252->set_screen("screen");
MCFG_PALETTE_ADD("palette2", 1024)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
@@ -451,7 +451,7 @@ MACHINE_CONFIG_START(rungun_state::rng)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
+ K054321(config, m_k054321, "lspeaker", "rspeaker");
// SFX
MCFG_DEVICE_ADD("k054539_1", K054539, 18.432_MHz_XTAL)
@@ -484,9 +484,7 @@ MACHINE_CONFIG_START(rungun_state::rng_dual)
MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng_dual_right)
MCFG_SCREEN_PALETTE("palette2")
-
- MCFG_DEVICE_MODIFY("k053252")
- MCFG_K053252_SET_SLAVE_SCREEN("demultiplex2")
+ m_k053252->set_slave_screen("demultiplex2");
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp
index d05d8fc44f7..655dc94105d 100644
--- a/src/mame/drivers/tasman.cpp
+++ b/src/mame/drivers/tasman.cpp
@@ -654,11 +654,11 @@ MACHINE_CONFIG_START(kongambl_state::kongambl)
MCFG_DEVICE_PROGRAM_MAP(kongamaud_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(kongambl_state, irq2_line_hold, 480)
- MCFG_DEVICE_ADD("k053252", K053252, 25000000)
- MCFG_K053252_OFFSETS(0, 16) // TBD
- MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, kongambl_state, vblank_irq_ack_w))
- MCFG_K053252_INT2_ACK_CB(WRITELINE(*this, kongambl_state, hblank_irq_ack_w))
- MCFG_VIDEO_SET_SCREEN("screen")
+ K053252(config, m_k053252, 25000000);
+ m_k053252->set_offsets(0, 16); // TBD
+ m_k053252->int1_ack().set(FUNC(kongambl_state::vblank_irq_ack_w));
+ m_k053252->int2_ack().set(FUNC(kongambl_state::hblank_irq_ack_w));
+ m_k053252->set_screen("screen");
EEPROM_93C46_16BIT(config, "eeprom");
diff --git a/src/mame/drivers/tv910.cpp b/src/mame/drivers/tv910.cpp
index 42938bbd6a8..f54b96d5a98 100644
--- a/src/mame/drivers/tv910.cpp
+++ b/src/mame/drivers/tv910.cpp
@@ -528,20 +528,20 @@ MACHINE_CONFIG_START(tv910_state::tv910)
MCFG_MC6845_ADDR_CHANGED_CB(tv910_state, crtc_update_addr)
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, tv910_state, vbl_w))
- MCFG_DEVICE_ADD(KBDC_TAG, AY3600, 0)
- MCFG_AY3600_MATRIX_X0(IOPORT("X0"))
- MCFG_AY3600_MATRIX_X1(IOPORT("X1"))
- MCFG_AY3600_MATRIX_X2(IOPORT("X2"))
- MCFG_AY3600_MATRIX_X3(IOPORT("X3"))
- MCFG_AY3600_MATRIX_X4(IOPORT("X4"))
- MCFG_AY3600_MATRIX_X5(IOPORT("X5"))
- MCFG_AY3600_MATRIX_X6(IOPORT("X6"))
- MCFG_AY3600_MATRIX_X7(IOPORT("X7"))
- MCFG_AY3600_MATRIX_X8(IOPORT("X8"))
- MCFG_AY3600_SHIFT_CB(READLINE(*this, tv910_state, ay3600_shift_r))
- MCFG_AY3600_CONTROL_CB(READLINE(*this, tv910_state, ay3600_control_r))
- MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, tv910_state, ay3600_data_ready_w))
- MCFG_AY3600_AKO_CB(WRITELINE(*this, tv910_state, ay3600_ako_w))
+ AY3600(config, m_ay3600, 0);
+ m_ay3600->x0().set_ioport("X0");
+ m_ay3600->x1().set_ioport("X1");
+ m_ay3600->x2().set_ioport("X2");
+ m_ay3600->x3().set_ioport("X3");
+ m_ay3600->x4().set_ioport("X4");
+ m_ay3600->x5().set_ioport("X5");
+ m_ay3600->x6().set_ioport("X6");
+ m_ay3600->x7().set_ioport("X7");
+ m_ay3600->x8().set_ioport("X8");
+ m_ay3600->shift().set(FUNC(tv910_state::ay3600_shift_r));
+ m_ay3600->control().set(FUNC(tv910_state::ay3600_control_r));
+ m_ay3600->data_ready().set(FUNC(tv910_state::ay3600_data_ready_w));
+ m_ay3600->ako().set(FUNC(tv910_state::ay3600_ako_w));
mos6551_device &acia(MOS6551(config, ACIA_TAG, 0));
acia.set_xtal(1.8432_MHz_XTAL);
diff --git a/src/mame/drivers/vendetta.cpp b/src/mame/drivers/vendetta.cpp
index 25b99533779..b4c96d7bb4a 100644
--- a/src/mame/drivers/vendetta.cpp
+++ b/src/mame/drivers/vendetta.cpp
@@ -507,8 +507,7 @@ MACHINE_CONFIG_START(vendetta_state::esckids)
MCFG_DEVICE_MODIFY("k053246")
MCFG_K053246_CONFIG("gfx2", NORMAL_PLANE_ORDER, 101, 6)
- MCFG_DEVICE_ADD("k053252", K053252, 6000000)
- MCFG_K053252_OFFSETS(12*8, 1*8)
+ K053252(config, "k053252", 6000000).set_offsets(12*8, 1*8);
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp
index 45db683606c..69cb64fc868 100644
--- a/src/mame/drivers/xexex.cpp
+++ b/src/mame/drivers/xexex.cpp
@@ -521,7 +521,7 @@ MACHINE_CONFIG_START(xexex_state::xexex)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
+ K054321(config, m_k054321, "lspeaker", "rspeaker");
MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(32'000'000)/8) // 4MHz
MCFG_SOUND_ROUTE(0, "filter1_l", 0.50)
diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp
index d11a02fbc78..25e3b5a4ab0 100644
--- a/src/mame/drivers/xmen.cpp
+++ b/src/mame/drivers/xmen.cpp
@@ -340,7 +340,7 @@ MACHINE_CONFIG_START(xmen_state::xmen)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
+ K054321(config, m_k054321, "lspeaker", "rspeaker");
MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(16'000'000)/4) /* verified on pcb */
MCFG_SOUND_ROUTE(0, "lspeaker", 0.20)
@@ -402,7 +402,7 @@ MACHINE_CONFIG_START(xmen_state::xmen6p)
MCFG_K053251_ADD("k053251")
- MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker")
+ K054321(config, m_k054321, "lspeaker", "rspeaker");
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
diff --git a/src/mame/drivers/z80ne.cpp b/src/mame/drivers/z80ne.cpp
index 6dd0a0f9907..786a1d8dd43 100644
--- a/src/mame/drivers/z80ne.cpp
+++ b/src/mame/drivers/z80ne.cpp
@@ -455,17 +455,17 @@ MACHINE_CONFIG_START(z80ne_state::z80net)
MCFG_MACHINE_START_OVERRIDE(z80ne_state, z80net )
MCFG_MACHINE_RESET_OVERRIDE(z80ne_state, z80net )
- MCFG_DEVICE_ADD("lx387_kr2376", KR2376_ST, 50000)
- MCFG_KR2376_MATRIX_X0(IOPORT("X0"))
- MCFG_KR2376_MATRIX_X1(IOPORT("X1"))
- MCFG_KR2376_MATRIX_X2(IOPORT("X2"))
- MCFG_KR2376_MATRIX_X3(IOPORT("X3"))
- MCFG_KR2376_MATRIX_X4(IOPORT("X4"))
- MCFG_KR2376_MATRIX_X5(IOPORT("X5"))
- MCFG_KR2376_MATRIX_X6(IOPORT("X6"))
- MCFG_KR2376_MATRIX_X7(IOPORT("X7"))
- MCFG_KR2376_SHIFT_CB(READLINE(*this, z80ne_state, lx387_shift_r))
- MCFG_KR2376_CONTROL_CB(READLINE(*this, z80ne_state, lx387_control_r))
+ KR2376_ST(config, m_lx387_kr2376, 50000);
+ m_lx387_kr2376->x<0>().set_ioport("X0");
+ m_lx387_kr2376->x<1>().set_ioport("X1");
+ m_lx387_kr2376->x<2>().set_ioport("X2");
+ m_lx387_kr2376->x<3>().set_ioport("X3");
+ m_lx387_kr2376->x<4>().set_ioport("X4");
+ m_lx387_kr2376->x<5>().set_ioport("X5");
+ m_lx387_kr2376->x<6>().set_ioport("X6");
+ m_lx387_kr2376->x<7>().set_ioport("X7");
+ m_lx387_kr2376->shift().set(FUNC(z80ne_state::lx387_shift_r));
+ m_lx387_kr2376->control().set(FUNC(z80ne_state::lx387_control_r));
/* video hardware */
MCFG_SCREEN_MC6847_PAL_ADD("lx388", "mc6847")
@@ -504,17 +504,17 @@ MACHINE_CONFIG_START(z80ne_state::z80netb)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
MCFG_CASSETTE_INTERFACE("z80ne_cass")
- MCFG_DEVICE_ADD("lx387_kr2376", KR2376_ST, 50000)
- MCFG_KR2376_MATRIX_X0(IOPORT("X0"))
- MCFG_KR2376_MATRIX_X1(IOPORT("X1"))
- MCFG_KR2376_MATRIX_X2(IOPORT("X2"))
- MCFG_KR2376_MATRIX_X3(IOPORT("X3"))
- MCFG_KR2376_MATRIX_X4(IOPORT("X4"))
- MCFG_KR2376_MATRIX_X5(IOPORT("X5"))
- MCFG_KR2376_MATRIX_X6(IOPORT("X6"))
- MCFG_KR2376_MATRIX_X7(IOPORT("X7"))
- MCFG_KR2376_SHIFT_CB(READLINE(*this, z80ne_state, lx387_shift_r))
- MCFG_KR2376_CONTROL_CB(READLINE(*this, z80ne_state, lx387_control_r))
+ KR2376_ST(config, m_lx387_kr2376, 50000);
+ m_lx387_kr2376->x<0>().set_ioport("X0");
+ m_lx387_kr2376->x<1>().set_ioport("X1");
+ m_lx387_kr2376->x<2>().set_ioport("X2");
+ m_lx387_kr2376->x<3>().set_ioport("X3");
+ m_lx387_kr2376->x<4>().set_ioport("X4");
+ m_lx387_kr2376->x<5>().set_ioport("X5");
+ m_lx387_kr2376->x<6>().set_ioport("X6");
+ m_lx387_kr2376->x<7>().set_ioport("X7");
+ m_lx387_kr2376->shift().set(FUNC(z80ne_state::lx387_shift_r));
+ m_lx387_kr2376->control().set(FUNC(z80ne_state::lx387_control_r));
/* video hardware */
MCFG_SCREEN_MC6847_PAL_ADD("lx388", "mc6847")
@@ -553,7 +553,7 @@ MACHINE_CONFIG_START(z80netf_state::z80netf)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
MCFG_CASSETTE_INTERFACE("z80ne_cass")
- MCFG_DEVICE_ADD("lx387_kr2376", KR2376_ST, 50000)
+ KR2376_ST(config, m_lx387_kr2376, 50000);
/* video hardware */
MCFG_SCREEN_MC6847_PAL_ADD("lx388", "mc6847")
diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp
index 78b363e052c..ca5202ec3ad 100644
--- a/src/mame/drivers/zr107.cpp
+++ b/src/mame/drivers/zr107.cpp
@@ -786,8 +786,7 @@ MACHINE_CONFIG_START(zr107_state::zr107)
EEPROM_93C46_16BIT(config, "eeprom");
- MCFG_DEVICE_ADD("k056230", K056230, 0)
- MCFG_K056230_CPU("maincpu")
+ K056230(config, "k056230", "maincpu");
MCFG_WATCHDOG_ADD("watchdog")
@@ -857,8 +856,7 @@ MACHINE_CONFIG_START(zr107_state::jetwave)
EEPROM_93C46_16BIT(config, "eeprom");
- MCFG_DEVICE_ADD("k056230", K056230, 0)
- MCFG_K056230_CPU("maincpu")
+ K056230(config, "k056230", "maincpu");
MCFG_WATCHDOG_ADD("watchdog")