From dec633d2dcccb28005d700614d635b577a699b93 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 21 Nov 2018 18:13:26 +0100 Subject: src/mame/video: switched various devices to devcb3 and removed MCFG macros (nw) --- src/mame/drivers/88games.cpp | 16 +-- src/mame/drivers/a2600.cpp | 19 ++- src/mame/drivers/ajax.cpp | 18 +-- src/mame/drivers/aliens.cpp | 18 +-- src/mame/drivers/asterix.cpp | 10 +- src/mame/drivers/atari400.cpp | 31 ++-- src/mame/drivers/bartop52.cpp | 4 +- src/mame/drivers/bishi.cpp | 2 +- src/mame/drivers/blockhl.cpp | 20 +-- src/mame/drivers/bloodbro.cpp | 9 +- src/mame/drivers/bottom9.cpp | 16 +-- src/mame/drivers/chqflag.cpp | 14 +- src/mame/drivers/coco3.cpp | 24 ++-- src/mame/drivers/crimfght.cpp | 18 +-- src/mame/drivers/dccons.cpp | 3 +- src/mame/drivers/dcon.cpp | 12 +- src/mame/drivers/ddenlovr.cpp | 10 +- src/mame/drivers/dynax.cpp | 98 ++++++------- src/mame/drivers/firebeat.cpp | 16 +-- src/mame/drivers/goodejan.cpp | 6 +- src/mame/drivers/gradius3.cpp | 20 +-- src/mame/drivers/igs017.cpp | 167 +++++++++------------- src/mame/drivers/igs_m027.cpp | 18 +-- src/mame/drivers/konamigx.cpp | 6 +- src/mame/drivers/konendev.cpp | 4 +- src/mame/drivers/konmedal.cpp | 6 +- src/mame/drivers/legionna.cpp | 54 ++++--- src/mame/drivers/lethal.cpp | 13 +- src/mame/drivers/mainevt.cpp | 28 ++-- src/mame/drivers/maxaflex.cpp | 6 +- src/mame/drivers/model1.cpp | 3 +- src/mame/drivers/model2.cpp | 8 +- src/mame/drivers/moo.cpp | 8 +- src/mame/drivers/mystwarr.cpp | 4 +- src/mame/drivers/namcond1.cpp | 10 +- src/mame/drivers/naomi.cpp | 11 +- src/mame/drivers/parodius.cpp | 15 +- src/mame/drivers/pcd.cpp | 4 +- src/mame/drivers/piratesh.cpp | 3 +- src/mame/drivers/quickpick5.cpp | 8 +- src/mame/drivers/r2dx_v33.cpp | 12 +- src/mame/drivers/raiden.cpp | 6 +- src/mame/drivers/raiden2.cpp | 12 +- src/mame/drivers/rainbow.cpp | 11 +- src/mame/drivers/rollerg.cpp | 8 +- src/mame/drivers/segam1.cpp | 5 +- src/mame/drivers/segas24.cpp | 7 +- src/mame/drivers/seibuspi.cpp | 20 +-- src/mame/drivers/seicupbl.cpp | 8 +- src/mame/drivers/sengokmj.cpp | 6 +- src/mame/drivers/seta2.cpp | 11 +- src/mame/drivers/simpsons.cpp | 6 +- src/mame/drivers/spy.cpp | 16 +-- src/mame/drivers/surpratk.cpp | 15 +- src/mame/drivers/taito_b.cpp | 272 ++++++++++++++++++------------------ src/mame/drivers/thunderx.cpp | 17 ++- src/mame/drivers/tmnt.cpp | 190 ++++++++++++------------- src/mame/drivers/tourtabl.cpp | 6 +- src/mame/drivers/tvboy.cpp | 8 +- src/mame/drivers/ultraman.cpp | 8 +- src/mame/drivers/vendetta.cpp | 12 +- src/mame/drivers/vidbrain.cpp | 10 +- src/mame/drivers/vt100.cpp | 14 +- src/mame/drivers/wpc_95.cpp | 3 +- src/mame/drivers/wpc_dcs.cpp | 3 +- src/mame/drivers/wpc_s.cpp | 3 +- src/mame/drivers/xexex.cpp | 2 +- src/mame/drivers/xmen.cpp | 12 +- src/mame/video/911_vdt.h | 10 -- src/mame/video/dynax_blitter_rev2.h | 30 +--- src/mame/video/gime.h | 24 +--- src/mame/video/gtia.h | 13 +- src/mame/video/igs017_igs031.h | 8 +- src/mame/video/k051960.h | 31 +--- src/mame/video/k052109.cpp | 2 +- src/mame/video/k052109.h | 22 +-- src/mame/video/k053244_k053245.h | 12 +- src/mame/video/k054338.cpp | 2 +- src/mame/video/k054338.h | 3 - src/mame/video/k057714.h | 5 +- src/mame/video/pcd.h | 5 +- src/mame/video/powervr2.h | 6 +- src/mame/video/segaic24.h | 10 +- src/mame/video/seibu_crtc.h | 30 +--- src/mame/video/tc0180vcu.h | 21 +-- src/mame/video/tia.h | 18 +-- src/mame/video/uv201.h | 21 +-- src/mame/video/vtvideo.h | 27 +--- src/mame/video/wpc_dmd.h | 5 +- src/mame/video/ygv608.h | 24 +--- 90 files changed, 745 insertions(+), 1047 deletions(-) diff --git a/src/mame/drivers/88games.cpp b/src/mame/drivers/88games.cpp index 9524301dccd..5f9cae9de2b 100644 --- a/src/mame/drivers/88games.cpp +++ b/src/mame/drivers/88games.cpp @@ -330,14 +330,14 @@ MACHINE_CONFIG_START(_88games_state::_88games) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(_88games_state, tile_callback) - - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(_88games_state, sprite_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette("palette"); + m_k052109->set_tile_callback(FUNC(_88games_state::tile_callback), this); + + K051960(config, m_k051960, 0); + m_k051960->set_palette("palette"); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(_88games_state::sprite_callback), this); MCFG_DEVICE_ADD("k051316", K051316, 0) MCFG_GFX_PALETTE("palette") diff --git a/src/mame/drivers/a2600.cpp b/src/mame/drivers/a2600.cpp index de364526c90..b1c1b186d51 100644 --- a/src/mame/drivers/a2600.cpp +++ b/src/mame/drivers/a2600.cpp @@ -32,7 +32,7 @@ static const uint16_t supported_screen_heights[4] = { 262, 312, 328, 342 }; void a2600_base_state::a2600_mem(address_map &map) // 6507 has 13-bit address space, 0x0000 - 0x1fff { - map(0x0000, 0x007f).mirror(0x0f00).rw("tia_video", FUNC(tia_video_device::read), FUNC(tia_video_device::write)); + map(0x0000, 0x007f).mirror(0x0f00).rw(m_tia, FUNC(tia_video_device::read), FUNC(tia_video_device::write)); map(0x0080, 0x00ff).mirror(0x0d00).ram().share("riot_ram"); #if USE_NEW_RIOT map(0x0280, 0x029f).mirror(0x0d00).m("riot", FUNC(mos6532_t::io_map)); @@ -511,10 +511,10 @@ MACHINE_CONFIG_START(a2600_state::a2600) MCFG_DEVICE_PROGRAM_MAP(a2600_mem) /* video hardware */ - MCFG_DEVICE_ADD("tia_video", TIA_NTSC_VIDEO, 0, "tia") - MCFG_TIA_READ_INPUT_PORT_CB(READ16(*this, a2600_state, a2600_read_input_port)) - MCFG_TIA_DATABUS_CONTENTS_CB(READ8(*this, a2600_state, a2600_get_databus_contents)) - MCFG_TIA_VSYNC_CB(WRITE16(*this, a2600_state, a2600_tia_vsync_callback)) + TIA_NTSC_VIDEO(config, m_tia, 0, "tia"); + m_tia->read_input_port_callback().set(FUNC(a2600_state::a2600_read_input_port)); + m_tia->databus_contents_callback().set(FUNC(a2600_state::a2600_get_databus_contents)); + m_tia->vsync_callback().set(FUNC(a2600_state::a2600_tia_vsync_callback)); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS( MASTER_CLOCK_NTSC, 228, 26, 26 + 160 + 16, 262, 24 , 24 + 192 + 31 ) @@ -558,11 +558,10 @@ MACHINE_CONFIG_START(a2600_state::a2600p) MCFG_M6502_DISABLE_CACHE() /* video hardware */ - MCFG_DEVICE_ADD("tia_video", TIA_PAL_VIDEO, 0, "tia") - MCFG_TIA_READ_INPUT_PORT_CB(READ16(*this, a2600_state, a2600_read_input_port)) - MCFG_TIA_DATABUS_CONTENTS_CB(READ8(*this, a2600_state, a2600_get_databus_contents)) - MCFG_TIA_VSYNC_CB(WRITE16(*this, a2600_state, a2600_tia_vsync_callback_pal)) - + TIA_PAL_VIDEO(config, m_tia, 0, "tia"); + m_tia->read_input_port_callback().set(FUNC(a2600_state::a2600_read_input_port)); + m_tia->databus_contents_callback().set(FUNC(a2600_state::a2600_get_databus_contents)); + m_tia->vsync_callback().set(FUNC(a2600_state::a2600_tia_vsync_callback_pal)); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS( MASTER_CLOCK_PAL, 228, 26, 26 + 160 + 16, 312, 32, 32 + 228 + 31 ) diff --git a/src/mame/drivers/ajax.cpp b/src/mame/drivers/ajax.cpp index 104fce7083c..62ed7948314 100644 --- a/src/mame/drivers/ajax.cpp +++ b/src/mame/drivers/ajax.cpp @@ -198,15 +198,15 @@ MACHINE_CONFIG_START(ajax_state::ajax) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(ajax_state, tile_callback) - - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(ajax_state, sprite_callback) - MCFG_K051960_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE)) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(ajax_state::tile_callback), this); + + K051960(config, m_k051960, 0); + m_k051960->set_palette("palette"); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(ajax_state::sprite_callback), this); + m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE); MCFG_DEVICE_ADD("k051316", K051316, 0) MCFG_GFX_PALETTE("palette") diff --git a/src/mame/drivers/aliens.cpp b/src/mame/drivers/aliens.cpp index 6a0742704b3..b58cfcbc358 100644 --- a/src/mame/drivers/aliens.cpp +++ b/src/mame/drivers/aliens.cpp @@ -221,15 +221,15 @@ MACHINE_CONFIG_START(aliens_state::aliens) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(aliens_state, tile_callback) - - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(aliens_state, sprite_callback) - MCFG_K051960_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE)) + K052109(config, m_k052109, 0); + m_k052109->set_palette("palette"); + m_k052109->set_tile_callback(FUNC(aliens_state::tile_callback), this); + + K051960(config, m_k051960, 0); + m_k051960->set_palette("palette"); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(aliens_state::sprite_callback), this); + m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/asterix.cpp b/src/mame/drivers/asterix.cpp index 0c98bff5b64..42d079d7af0 100644 --- a/src/mame/drivers/asterix.cpp +++ b/src/mame/drivers/asterix.cpp @@ -290,12 +290,12 @@ MACHINE_CONFIG_START(asterix_state::asterix) MCFG_K056832_CONFIG("gfx1", K056832_BPP_4, 1, 1) MCFG_K056832_PALETTE("palette") - MCFG_DEVICE_ADD("k053244", K053244, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(-3, -1) - MCFG_K05324X_CB(asterix_state, sprite_callback) + K053244(config, m_k053244, 0); + m_k053244->set_palette("palette"); + m_k053244->set_offsets(-3, -1); + m_k053244->set_sprite_callback(FUNC(asterix_state::sprite_callback), this); - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/atari400.cpp b/src/mame/drivers/atari400.cpp index d4503055a69..b93bcb7d0f6 100644 --- a/src/mame/drivers/atari400.cpp +++ b/src/mame/drivers/atari400.cpp @@ -2163,9 +2163,9 @@ MACHINE_CONFIG_START(a400_state::atari_common) /* internal ram */ RAM(config, m_ram).set_default_size("48K"); - MCFG_DEVICE_ADD("gtia", ATARI_GTIA, 0) - MCFG_GTIA_READ_CB(IOPORT("console")) - MCFG_GTIA_WRITE_CB(WRITE8(*this, a400_state, gtia_cb)) + ATARI_GTIA(config, m_gtia, 0); + m_gtia->read_callback().set_ioport("console"); + m_gtia->write_callback().set(FUNC(a400_state::gtia_cb)); MCFG_DEVICE_ADD("antic", ATARI_ANTIC, 0) MCFG_ANTIC_GTIA("gtia") @@ -2196,8 +2196,7 @@ MACHINE_CONFIG_START(a400_state::a400) MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() MCFG_SCREEN_SIZE_ANTIC_60HZ() - MCFG_DEVICE_MODIFY("gtia") - MCFG_GTIA_REGION(GTIA_NTSC) + m_gtia->set_region(GTIA_NTSC); MACHINE_CONFIG_END @@ -2215,8 +2214,7 @@ MACHINE_CONFIG_START(a400_state::a400pal) MCFG_SCREEN_REFRESH_RATE_ANTIC_50HZ() MCFG_SCREEN_SIZE_ANTIC_50HZ() - MCFG_DEVICE_MODIFY("gtia") - MCFG_GTIA_REGION(GTIA_PAL) + m_gtia->set_region(GTIA_PAL); MACHINE_CONFIG_END @@ -2234,8 +2232,7 @@ MACHINE_CONFIG_START(a400_state::a800) MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() MCFG_SCREEN_SIZE_ANTIC_60HZ() - MCFG_DEVICE_MODIFY("gtia") - MCFG_GTIA_REGION(GTIA_NTSC) + m_gtia->set_region(GTIA_NTSC); MCFG_A800_CARTRIDGE_ADD("cartright", a800_right, nullptr) MACHINE_CONFIG_END @@ -2255,8 +2252,7 @@ MACHINE_CONFIG_START(a400_state::a800pal) MCFG_SCREEN_REFRESH_RATE_ANTIC_50HZ() MCFG_SCREEN_SIZE_ANTIC_50HZ() - MCFG_DEVICE_MODIFY("gtia") - MCFG_GTIA_REGION(GTIA_PAL) + m_gtia->set_region(GTIA_PAL); MCFG_A800_CARTRIDGE_ADD("cartright", a800_right, nullptr) MACHINE_CONFIG_END @@ -2278,8 +2274,7 @@ MACHINE_CONFIG_START(a400_state::a600xl) MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() MCFG_SCREEN_SIZE_ANTIC_60HZ() - MCFG_DEVICE_MODIFY("gtia") - MCFG_GTIA_REGION(GTIA_NTSC) + m_gtia->set_region(GTIA_NTSC); m_ram->set_default_size("16K"); MACHINE_CONFIG_END @@ -2303,8 +2298,7 @@ MACHINE_CONFIG_START(a400_state::a800xl) MCFG_SCREEN_REFRESH_RATE_ANTIC_60HZ() MCFG_SCREEN_SIZE_ANTIC_60HZ() - MCFG_DEVICE_MODIFY("gtia") - MCFG_GTIA_REGION(GTIA_NTSC) + m_gtia->set_region(GTIA_NTSC); MACHINE_CONFIG_END @@ -2319,8 +2313,7 @@ MACHINE_CONFIG_START(a400_state::a800xlpal) MCFG_SCREEN_REFRESH_RATE_ANTIC_50HZ() MCFG_SCREEN_SIZE_ANTIC_50HZ() - MCFG_DEVICE_MODIFY("gtia") - MCFG_GTIA_REGION(GTIA_PAL) + m_gtia->set_region(GTIA_PAL); MCFG_DEVICE_MODIFY("pokey") MCFG_DEVICE_CLOCK(1773000) @@ -2380,8 +2373,8 @@ MACHINE_CONFIG_START(a400_state::a5200) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) - MCFG_DEVICE_ADD("gtia", ATARI_GTIA, 0) - MCFG_GTIA_REGION(GTIA_NTSC) + ATARI_GTIA(config, m_gtia, 0); + m_gtia->set_region(GTIA_NTSC); MCFG_DEVICE_ADD("antic", ATARI_ANTIC, 0) MCFG_ANTIC_GTIA("gtia") diff --git a/src/mame/drivers/bartop52.cpp b/src/mame/drivers/bartop52.cpp index 59e00c03a16..4bc0276dce3 100644 --- a/src/mame/drivers/bartop52.cpp +++ b/src/mame/drivers/bartop52.cpp @@ -132,8 +132,8 @@ MACHINE_CONFIG_START(bartop52_state::a5200) MCFG_DEVICE_PROGRAM_MAP(a5200_mem) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bartop52_state, bartop_interrupt, "screen", 0, 1) - MCFG_DEVICE_ADD("gtia", ATARI_GTIA, 0) - MCFG_GTIA_REGION(GTIA_NTSC) + ATARI_GTIA(config, m_gtia, 0); + m_gtia->set_region(GTIA_NTSC); MCFG_DEVICE_ADD("antic", ATARI_ANTIC, 0) MCFG_ANTIC_GTIA("gtia") diff --git a/src/mame/drivers/bishi.cpp b/src/mame/drivers/bishi.cpp index ea7d1dca822..5c555d3cab6 100644 --- a/src/mame/drivers/bishi.cpp +++ b/src/mame/drivers/bishi.cpp @@ -471,7 +471,7 @@ MACHINE_CONFIG_START(bishi_state::bishi) MCFG_K056832_CONFIG("gfx1", K056832_BPP_8, 1, 0) MCFG_K056832_PALETTE("palette") - MCFG_DEVICE_ADD("k054338", K054338, 0) + K054338(config, m_k054338, 0); // FP 201404: any reason why this is not connected to the k055555 below? MCFG_K055555_ADD("k055555") diff --git a/src/mame/drivers/blockhl.cpp b/src/mame/drivers/blockhl.cpp index fe6a4f530e7..35f36b69c9b 100644 --- a/src/mame/drivers/blockhl.cpp +++ b/src/mame/drivers/blockhl.cpp @@ -303,16 +303,16 @@ MACHINE_CONFIG_START(blockhl_state::blockhl) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_SCREEN_TAG("screen") - MCFG_K052109_CB(blockhl_state, tile_callback) - MCFG_K052109_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE)) - - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(blockhl_state, sprite_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette("palette"); + m_k052109->set_screen_tag("screen"); + m_k052109->set_tile_callback(FUNC(blockhl_state::tile_callback), this); + m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE); + + K051960(config, m_k051960, 0); + m_k051960->set_palette("palette"); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(blockhl_state::sprite_callback), this); // sound hardware SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/bloodbro.cpp b/src/mame/drivers/bloodbro.cpp index 698937d46f0..deb7b67873f 100644 --- a/src/mame/drivers/bloodbro.cpp +++ b/src/mame/drivers/bloodbro.cpp @@ -542,10 +542,9 @@ MACHINE_CONFIG_START(bloodbro_state::bloodbro) MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_bloodbro) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, bloodbro_state, layer_en_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, bloodbro_state, layer_scroll_w)) - + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.layer_en_callback().set(FUNC(bloodbro_state::layer_en_w)); + crtc.layer_scroll_callback().set(FUNC(bloodbro_state::layer_scroll_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_bloodbro) MCFG_PALETTE_ADD("palette", 2048) @@ -589,7 +588,7 @@ MACHINE_CONFIG_START(bloodbro_state::weststry) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_REFRESH_RATE(59) /* verified on PCB */ MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_weststry) - MCFG_DEVICE_REMOVE("crtc") + config.device_remove("crtc"); // Bootleg sound hardware is close copy of Seibu, but uses different interrupts diff --git a/src/mame/drivers/bottom9.cpp b/src/mame/drivers/bottom9.cpp index 5243a1b6c4a..78f1e5464ab 100644 --- a/src/mame/drivers/bottom9.cpp +++ b/src/mame/drivers/bottom9.cpp @@ -326,14 +326,14 @@ MACHINE_CONFIG_START(bottom9_state::bottom9) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) // 051961 on schematics - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(bottom9_state, tile_callback) - - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(bottom9_state, sprite_callback) + K052109(config, m_k052109, 0); // 051961 on schematics + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(bottom9_state::tile_callback), this); + + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(bottom9_state::sprite_callback), this); MCFG_DEVICE_ADD("k051316", K051316, 0) MCFG_GFX_PALETTE("palette") diff --git a/src/mame/drivers/chqflag.cpp b/src/mame/drivers/chqflag.cpp index 9749b29589d..8679f542f4e 100644 --- a/src/mame/drivers/chqflag.cpp +++ b/src/mame/drivers/chqflag.cpp @@ -343,13 +343,13 @@ MACHINE_CONFIG_START(chqflag_state::chqflag) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(chqflag_state, sprite_callback) - MCFG_K051960_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE)) - MCFG_K051960_NMI_HANDLER(INPUTLINE("maincpu", INPUT_LINE_NMI)) - MCFG_K051960_VREG_CONTRAST_HANDLER(WRITELINE(*this, chqflag_state,background_brt_w)) + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(chqflag_state::sprite_callback), this); + m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE); + m_k051960->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); + m_k051960->vreg_contrast_handler().set(FUNC(chqflag_state::background_brt_w)); MCFG_DEVICE_ADD("k051316_1", K051316, 0) MCFG_GFX_PALETTE("palette") diff --git a/src/mame/drivers/coco3.cpp b/src/mame/drivers/coco3.cpp index 1cdfd8759b8..16f6b186f7c 100644 --- a/src/mame/drivers/coco3.cpp +++ b/src/mame/drivers/coco3.cpp @@ -292,12 +292,12 @@ MACHINE_CONFIG_START(coco3_state::coco3) // video hardware config.set_default_layout(layout_coco3); - MCFG_DEVICE_ADD(GIME_TAG, GIME_NTSC, XTAL(28'636'363), MAINCPU_TAG, RAM_TAG, CARTRIDGE_TAG, MAINCPU_TAG) - MCFG_GIME_HSYNC_CALLBACK(WRITELINE(PIA0_TAG, pia6821_device, ca1_w)) - MCFG_GIME_FSYNC_CALLBACK(WRITELINE(PIA0_TAG, pia6821_device, cb1_w)) - MCFG_GIME_IRQ_CALLBACK(WRITELINE(*this, coco3_state, gime_irq_w)) - MCFG_GIME_FIRQ_CALLBACK(WRITELINE(*this, coco3_state, gime_firq_w)) - MCFG_GIME_FLOATING_BUS_CALLBACK(READ8(*this, coco_state, floating_bus_r)) + GIME_NTSC(config, m_gime, XTAL(28'636'363), MAINCPU_TAG, RAM_TAG, CARTRIDGE_TAG, MAINCPU_TAG); + m_gime->hsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::ca1_w)); + m_gime->fsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::cb1_w)); + m_gime->irq_wr_callback().set(FUNC(coco3_state::gime_irq_w)); + m_gime->firq_wr_callback().set(FUNC(coco3_state::gime_firq_w)); + m_gime->floating_bus_rd_callback().set(FUNC(coco3_state::floating_bus_r)); // composite monitor MCFG_SCREEN_ADD(COMPOSITE_SCREEN_TAG, RASTER) @@ -338,12 +338,12 @@ MACHINE_CONFIG_START(coco3_state::coco3p) MCFG_DEVICE_CLOCK(XTAL(28'475'000) / 32) // An additional 4.433618 MHz XTAL is required for PAL color encoding - MCFG_DEVICE_REPLACE(GIME_TAG, GIME_PAL, XTAL(28'475'000), MAINCPU_TAG, RAM_TAG, CARTRIDGE_TAG, MAINCPU_TAG) - MCFG_GIME_HSYNC_CALLBACK(WRITELINE(PIA0_TAG, pia6821_device, ca1_w)) - MCFG_GIME_FSYNC_CALLBACK(WRITELINE(PIA0_TAG, pia6821_device, cb1_w)) - MCFG_GIME_IRQ_CALLBACK(WRITELINE(*this, coco3_state, gime_irq_w)) - MCFG_GIME_FIRQ_CALLBACK(WRITELINE(*this, coco3_state, gime_firq_w)) - MCFG_GIME_FLOATING_BUS_CALLBACK(READ8(*this, coco_state, floating_bus_r)) + GIME_PAL(config.replace(), m_gime, XTAL(28'475'000), MAINCPU_TAG, RAM_TAG, CARTRIDGE_TAG, MAINCPU_TAG); + m_gime->hsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::ca1_w)); + m_gime->fsync_wr_callback().set(PIA0_TAG, FUNC(pia6821_device::cb1_w)); + m_gime->irq_wr_callback().set(FUNC(coco3_state::gime_irq_w)); + m_gime->firq_wr_callback().set(FUNC(coco3_state::gime_firq_w)); + m_gime->floating_bus_rd_callback().set(FUNC(coco3_state::floating_bus_r)); MACHINE_CONFIG_END MACHINE_CONFIG_START(coco3_state::coco3h) diff --git a/src/mame/drivers/crimfght.cpp b/src/mame/drivers/crimfght.cpp index 69b5d6d9dbd..bd7283b902f 100644 --- a/src/mame/drivers/crimfght.cpp +++ b/src/mame/drivers/crimfght.cpp @@ -327,15 +327,15 @@ MACHINE_CONFIG_START(crimfght_state::crimfght) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(crimfght_state, tile_callback) - - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(crimfght_state, sprite_callback) - MCFG_K051960_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE)) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(crimfght_state::tile_callback), this); + + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(crimfght_state::sprite_callback), this); + m_k051960->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp index ecaf04deff5..4457cacf7d8 100644 --- a/src/mame/drivers/dccons.cpp +++ b/src/mame/drivers/dccons.cpp @@ -617,7 +617,8 @@ MACHINE_CONFIG_START(dc_cons_state::dc) MCFG_SCREEN_RAW_PARAMS(13458568*2, 857, 0, 640, 524, 0, 480) /* TODO: where pclk actually comes? */ MCFG_SCREEN_UPDATE_DEVICE("powervr2", powervr2_device, screen_update) MCFG_PALETTE_ADD("palette", 0x1000) - MCFG_POWERVR2_ADD("powervr2", WRITE8(*this, dc_state, pvr_irq)) + POWERVR2(config, m_powervr2, 0); + m_powervr2->irq_callback().set(FUNC(dc_state::pvr_irq)); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); diff --git a/src/mame/drivers/dcon.cpp b/src/mame/drivers/dcon.cpp index 9aecbdfd336..b81d6f1a5d9 100644 --- a/src/mame/drivers/dcon.cpp +++ b/src/mame/drivers/dcon.cpp @@ -295,9 +295,9 @@ MACHINE_CONFIG_START(dcon_state::dcon) MCFG_SCREEN_UPDATE_DRIVER(dcon_state, screen_update_dcon) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, dcon_state, layer_en_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, dcon_state, layer_scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.layer_en_callback().set(FUNC(dcon_state::layer_en_w)); + crtc.layer_scroll_callback().set(FUNC(dcon_state::layer_scroll_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dcon) MCFG_PALETTE_ADD("palette", 2048) @@ -340,9 +340,9 @@ MACHINE_CONFIG_START(dcon_state::sdgndmps) /* PCB number is PB91008 */ MCFG_SCREEN_UPDATE_DRIVER(dcon_state, screen_update_sdgndmps) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, dcon_state, layer_en_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, dcon_state, layer_scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.layer_en_callback().set(FUNC(dcon_state::layer_en_w)); + crtc.layer_scroll_callback().set(FUNC(dcon_state::layer_scroll_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dcon) MCFG_PALETTE_ADD("palette", 2048) diff --git a/src/mame/drivers/ddenlovr.cpp b/src/mame/drivers/ddenlovr.cpp index 587a66ddebf..3774e4dee4b 100644 --- a/src/mame/drivers/ddenlovr.cpp +++ b/src/mame/drivers/ddenlovr.cpp @@ -4391,11 +4391,11 @@ MACHINE_CONFIG_START(ddenlovr_state::htengoku) m_screen->set_palette(m_palette); m_screen->screen_vblank().set(FUNC(ddenlovr_state::sprtmtch_vblank_w)); - MCFG_DEVICE_ADD(m_blitter, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, hnoridur_blit_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit_scrolly_w)) - MCFG_DYNAX_BLITTER_REV2_READY_CB(WRITELINE(*this, dynax_state, sprtmtch_blitter_irq_w)) + DYNAX_BLITTER_REV2(config, m_blitter, 0); + m_blitter->vram_out_cb().set(FUNC(dynax_state::hnoridur_blit_pixel_w)); + m_blitter->scrollx_cb().set(FUNC(dynax_state::dynax_blit_scrollx_w)); + m_blitter->scrolly_cb().set(FUNC(dynax_state::dynax_blit_scrolly_w)); + m_blitter->ready_cb().set(FUNC(dynax_state::sprtmtch_blitter_irq_w)); MCFG_PALETTE_ADD("palette", 16*256) diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp index b5aad491229..79b0799f77f 100644 --- a/src/mame/drivers/dynax.cpp +++ b/src/mame/drivers/dynax.cpp @@ -4222,12 +4222,12 @@ MACHINE_CONFIG_START(dynax_state::cdracula) m_screen->set_palette(m_palette); m_screen->screen_vblank().set(FUNC(dynax_state::sprtmtch_vblank_w)); - MCFG_DEVICE_ADD(m_blitter, CDRACULA_BLITTER, 0) - MCFG_CDRACULA_BLITTER_VRAM_OUT_CB(WRITE8(*this, dynax_state, cdracula_blit_pixel_w)) - MCFG_CDRACULA_BLITTER_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit_scrollx_w)) - MCFG_CDRACULA_BLITTER_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit_scrolly_w)) - MCFG_CDRACULA_BLITTER_READY_CB(WRITELINE(*this, dynax_state, sprtmtch_blitter_irq_w)) - MCFG_CDRACULA_BLITTER_DEST_CB(WRITE8(*this, dynax_state, dynax_blit_dest_w)) + cdracula_blitter_device &blitter(CDRACULA_BLITTER(config, m_blitter, 0)); + blitter.vram_out_cb().set(FUNC(dynax_state::cdracula_blit_pixel_w)); + blitter.scrollx_cb().set(FUNC(dynax_state::dynax_blit_scrollx_w)); + blitter.scrolly_cb().set(FUNC(dynax_state::dynax_blit_scrolly_w)); + blitter.ready_cb().set(FUNC(dynax_state::sprtmtch_blitter_irq_w)); + blitter.blit_dest_cb().set(FUNC(dynax_state::dynax_blit_dest_w)); MCFG_PALETTE_ADD("palette", 512) MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette @@ -4280,11 +4280,11 @@ MACHINE_CONFIG_START(dynax_state::hanamai) m_screen->set_palette(m_palette); m_screen->screen_vblank().set(FUNC(dynax_state::sprtmtch_vblank_w)); - MCFG_DEVICE_ADD(m_blitter, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, hanamai_blit_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit_scrolly_w)) - MCFG_DYNAX_BLITTER_REV2_READY_CB(WRITELINE(*this, dynax_state, sprtmtch_blitter_irq_w)) + DYNAX_BLITTER_REV2(config, m_blitter, 0); + m_blitter->vram_out_cb().set(FUNC(dynax_state::hanamai_blit_pixel_w)); + m_blitter->scrollx_cb().set(FUNC(dynax_state::dynax_blit_scrollx_w)); + m_blitter->scrolly_cb().set(FUNC(dynax_state::dynax_blit_scrolly_w)); + m_blitter->ready_cb().set(FUNC(dynax_state::sprtmtch_blitter_irq_w)); MCFG_PALETTE_ADD("palette", 512) @@ -4354,11 +4354,11 @@ MACHINE_CONFIG_START(dynax_state::hnoridur) m_screen->set_palette(m_palette); m_screen->screen_vblank().set(FUNC(dynax_state::sprtmtch_vblank_w)); - MCFG_DEVICE_ADD(m_blitter, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, hnoridur_blit_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit_scrolly_w)) - MCFG_DYNAX_BLITTER_REV2_READY_CB(WRITELINE(*this, dynax_state, sprtmtch_blitter_irq_w)) + DYNAX_BLITTER_REV2(config, m_blitter, 0); + m_blitter->vram_out_cb().set(FUNC(dynax_state::hnoridur_blit_pixel_w)); + m_blitter->scrollx_cb().set(FUNC(dynax_state::dynax_blit_scrollx_w)); + m_blitter->scrolly_cb().set(FUNC(dynax_state::dynax_blit_scrolly_w)); + m_blitter->ready_cb().set(FUNC(dynax_state::sprtmtch_blitter_irq_w)); MCFG_PALETTE_ADD("palette", 16*256) @@ -4423,11 +4423,11 @@ MACHINE_CONFIG_START(dynax_state::hjingi) m_screen->set_palette(m_palette); m_screen->screen_vblank().set(FUNC(dynax_state::sprtmtch_vblank_w)); - MCFG_DEVICE_ADD(m_blitter, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, hnoridur_blit_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit_scrolly_w)) - MCFG_DYNAX_BLITTER_REV2_READY_CB(WRITELINE(*this, dynax_state, sprtmtch_blitter_irq_w)) + DYNAX_BLITTER_REV2(config, m_blitter, 0); + m_blitter->vram_out_cb().set(FUNC(dynax_state::hnoridur_blit_pixel_w)); + m_blitter->scrollx_cb().set(FUNC(dynax_state::dynax_blit_scrollx_w)); + m_blitter->scrolly_cb().set(FUNC(dynax_state::dynax_blit_scrolly_w)); + m_blitter->ready_cb().set(FUNC(dynax_state::sprtmtch_blitter_irq_w)); MCFG_PALETTE_ADD("palette", 16*256) @@ -4485,11 +4485,11 @@ MACHINE_CONFIG_START(dynax_state::sprtmtch) m_screen->set_palette(m_palette); m_screen->screen_vblank().set(FUNC(dynax_state::sprtmtch_vblank_w)); - MCFG_DEVICE_ADD(m_blitter, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, drgpunch_blit_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit_scrolly_w)) - MCFG_DYNAX_BLITTER_REV2_READY_CB(WRITELINE(*this, dynax_state, sprtmtch_blitter_irq_w)) + DYNAX_BLITTER_REV2(config, m_blitter, 0); + m_blitter->vram_out_cb().set(FUNC(dynax_state::drgpunch_blit_pixel_w)); + m_blitter->scrollx_cb().set(FUNC(dynax_state::dynax_blit_scrollx_w)); + m_blitter->scrolly_cb().set(FUNC(dynax_state::dynax_blit_scrolly_w)); + m_blitter->ready_cb().set(FUNC(dynax_state::sprtmtch_blitter_irq_w)); MCFG_PALETTE_ADD("palette", 512) @@ -4552,10 +4552,10 @@ MACHINE_CONFIG_START(dynax_state::mjfriday) m_screen->set_palette(m_palette); m_screen->screen_vblank().set(FUNC(dynax_state::mjfriday_vblank_w)); - MCFG_DEVICE_ADD(m_blitter, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, mjdialq2_blit_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit_scrolly_w)) + DYNAX_BLITTER_REV2(config, m_blitter, 0); + m_blitter->vram_out_cb().set(FUNC(dynax_state::mjdialq2_blit_pixel_w)); + m_blitter->scrollx_cb().set(FUNC(dynax_state::dynax_blit_scrollx_w)); + m_blitter->scrolly_cb().set(FUNC(dynax_state::dynax_blit_scrolly_w)); // No blitter IRQ MCFG_PALETTE_ADD("palette", 512) @@ -4715,11 +4715,11 @@ MACHINE_CONFIG_START(dynax_state::jantouki) top.set_palette(m_palette); top.screen_vblank().set(FUNC(dynax_state::jantouki_vblank_w)); - MCFG_DEVICE_ADD(m_blitter, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, jantouki_blit_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit_scrolly_w)) - MCFG_DYNAX_BLITTER_REV2_READY_CB(WRITELINE(*this, dynax_state, jantouki_blitter_irq_w)) + DYNAX_BLITTER_REV2(config, m_blitter, 0); + m_blitter->vram_out_cb().set(FUNC(dynax_state::jantouki_blit_pixel_w)); + m_blitter->scrollx_cb().set(FUNC(dynax_state::dynax_blit_scrollx_w)); + m_blitter->scrolly_cb().set(FUNC(dynax_state::dynax_blit_scrolly_w)); + m_blitter->ready_cb().set(FUNC(dynax_state::jantouki_blitter_irq_w)); screen_device &bottom(SCREEN(config, "bottom", SCREEN_TYPE_RASTER)); bottom.set_refresh_hz(60); @@ -4729,11 +4729,11 @@ MACHINE_CONFIG_START(dynax_state::jantouki) bottom.set_screen_update(FUNC(dynax_state::screen_update_jantouki_bottom)); bottom.set_palette(m_palette); - MCFG_DEVICE_ADD(m_blitter2, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, jantouki_blit2_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit2_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit2_scrolly_w)) - MCFG_DYNAX_BLITTER_REV2_READY_CB(WRITELINE(*this, dynax_state, jantouki_blitter2_irq_w)) + DYNAX_BLITTER_REV2(config, m_blitter2, 0); + m_blitter2->vram_out_cb().set(FUNC(dynax_state::jantouki_blit2_pixel_w)); + m_blitter2->scrollx_cb().set(FUNC(dynax_state::dynax_blit2_scrollx_w)); + m_blitter2->scrolly_cb().set(FUNC(dynax_state::dynax_blit2_scrolly_w)); + m_blitter2->ready_cb().set(FUNC(dynax_state::jantouki_blitter2_irq_w)); MCFG_VIDEO_START_OVERRIDE(dynax_state,jantouki) @@ -4888,11 +4888,11 @@ MACHINE_CONFIG_START(dynax_state::tenkai) m_screen->set_palette(m_palette); m_screen->screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ1); - MCFG_DEVICE_ADD(m_blitter, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, hnoridur_blit_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, tenkai_blit_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, tenkai_blit_scrolly_w)) - MCFG_DYNAX_BLITTER_REV2_READY_CB(WRITELINE(*this, dynax_state, tenkai_blitter_irq_w)) + DYNAX_BLITTER_REV2(config, m_blitter, 0); + m_blitter->vram_out_cb().set(FUNC(dynax_state::hnoridur_blit_pixel_w)); + m_blitter->scrollx_cb().set(FUNC(dynax_state::tenkai_blit_scrollx_w)); + m_blitter->scrolly_cb().set(FUNC(dynax_state::tenkai_blit_scrolly_w)); + m_blitter->ready_cb().set(FUNC(dynax_state::tenkai_blitter_irq_w)); MCFG_PALETTE_ADD("palette", 16*256) @@ -4963,10 +4963,10 @@ MACHINE_CONFIG_START(dynax_state::gekisha) m_screen->set_palette(m_palette); m_screen->screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - MCFG_DEVICE_ADD(m_blitter, DYNAX_BLITTER_REV2, 0) - MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(WRITE8(*this, dynax_state, mjdialq2_blit_pixel_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(WRITE8(*this, dynax_state, dynax_blit_scrollx_w)) - MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(WRITE8(*this, dynax_state, dynax_blit_scrolly_w)) + DYNAX_BLITTER_REV2(config, m_blitter, 0); + m_blitter->vram_out_cb().set(FUNC(dynax_state::mjdialq2_blit_pixel_w)); + m_blitter->scrollx_cb().set(FUNC(dynax_state::dynax_blit_scrollx_w)); + m_blitter->scrolly_cb().set(FUNC(dynax_state::dynax_blit_scrolly_w)); MCFG_PALETTE_ADD("palette", 512) MCFG_PALETTE_INIT_OWNER(dynax_state,sprtmtch) // static palette diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp index c747161f28c..c0a431ca249 100644 --- a/src/mame/drivers/firebeat.cpp +++ b/src/mame/drivers/firebeat.cpp @@ -954,7 +954,7 @@ void firebeat_state::firebeat_map(address_map &map) map(0x7dc00000, 0x7dc0000f).rw(m_duart_com, FUNC(pc16552_device::read), FUNC(pc16552_device::write)); map(0x7e000000, 0x7e00003f).rw("rtc", FUNC(rtc65271_device::rtc_r), FUNC(rtc65271_device::rtc_w)); map(0x7e000100, 0x7e00013f).rw("rtc", FUNC(rtc65271_device::xram_r), FUNC(rtc65271_device::xram_w)); - map(0x7e800000, 0x7e8000ff).rw("gcu0", FUNC(k057714_device::read), FUNC(k057714_device::write)); + map(0x7e800000, 0x7e8000ff).rw(m_gcu[0], FUNC(k057714_device::read), FUNC(k057714_device::write)); map(0x7fe00000, 0x7fe0000f).rw(FUNC(firebeat_state::ata_command_r), FUNC(firebeat_state::ata_command_w)); map(0x7fe80000, 0x7fe8000f).rw(FUNC(firebeat_state::ata_control_r), FUNC(firebeat_state::ata_control_w)); map(0x7ff80000, 0x7fffffff).rom().region("user1", 0); /* System BIOS */ @@ -963,7 +963,7 @@ void firebeat_state::firebeat_map(address_map &map) void firebeat_state::firebeat2_map(address_map &map) { firebeat_map(map); - map(0x7e800100, 0x7e8001ff).rw("gcu1", FUNC(k057714_device::read), FUNC(k057714_device::write)); + map(0x7e800100, 0x7e8001ff).rw(m_gcu[1], FUNC(k057714_device::read), FUNC(k057714_device::write)); } void firebeat_state::spu_map(address_map &map) @@ -1200,8 +1200,8 @@ MACHINE_CONFIG_START(firebeat_state::firebeat) /* video hardware */ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") - MCFG_DEVICE_ADD("gcu0", K057714, 0) - MCFG_K057714_IRQ_CALLBACK(WRITELINE(*this, firebeat_state, gcu0_interrupt)) + K057714(config, m_gcu[0], 0); + m_gcu[0]->irq_callback().set(FUNC(firebeat_state::gcu0_interrupt)); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -1258,11 +1258,11 @@ MACHINE_CONFIG_START(firebeat_state::firebeat2) /* video hardware */ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") - MCFG_DEVICE_ADD("gcu0", K057714, 0) - MCFG_K057714_IRQ_CALLBACK(WRITELINE(*this, firebeat_state, gcu0_interrupt)) + K057714(config, m_gcu[0], 0); + m_gcu[0]->irq_callback().set(FUNC(firebeat_state::gcu0_interrupt)); - MCFG_DEVICE_ADD("gcu1", K057714, 0) - MCFG_K057714_IRQ_CALLBACK(WRITELINE(*this, firebeat_state, gcu1_interrupt)) + K057714(config, m_gcu[1], 0); + m_gcu[1]->irq_callback().set(FUNC(firebeat_state::gcu1_interrupt)); MCFG_SCREEN_ADD("lscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/goodejan.cpp b/src/mame/drivers/goodejan.cpp index e82277ad8fe..7bdb995c9c2 100644 --- a/src/mame/drivers/goodejan.cpp +++ b/src/mame/drivers/goodejan.cpp @@ -673,9 +673,9 @@ MACHINE_CONFIG_START(goodejan_state::goodejan) MCFG_SCREEN_PALETTE("palette") MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, goodejan_state, vblank_irq)) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, goodejan_state, layer_en_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, goodejan_state, layer_scroll_w)) + SEIBU_CRTC(config, m_crtc, 0); + m_crtc->layer_en_callback().set(FUNC(goodejan_state::layer_en_w)); + m_crtc->layer_scroll_callback().set(FUNC(goodejan_state::layer_scroll_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_goodejan) MCFG_PALETTE_ADD("palette", 0x1000) diff --git a/src/mame/drivers/gradius3.cpp b/src/mame/drivers/gradius3.cpp index 93a648accef..d48e340a86e 100644 --- a/src/mame/drivers/gradius3.cpp +++ b/src/mame/drivers/gradius3.cpp @@ -311,16 +311,16 @@ MACHINE_CONFIG_START(gradius3_state::gradius3) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_PALETTE_ENABLE_SHADOWS() - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(gradius3_state, tile_callback) - MCFG_K052109_CHARRAM(true) - - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(gradius3_state, sprite_callback) - MCFG_K051960_PLANEORDER(K051960_PLANEORDER_GRADIUS3) + K052109(config, m_k052109, 0); + m_k052109->set_palette("palette"); + m_k052109->set_tile_callback(FUNC(gradius3_state::tile_callback), this); + m_k052109->set_char_ram(true); + + K051960(config, m_k051960, 0); + m_k051960->set_palette("palette"); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(gradius3_state::sprite_callback), this); + m_k051960->set_plane_order(K051960_PLANEORDER_GRADIUS3); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/igs017.cpp b/src/mame/drivers/igs017.cpp index 52cd90d5dae..83a839725c7 100644 --- a/src/mame/drivers/igs017.cpp +++ b/src/mame/drivers/igs017.cpp @@ -86,13 +86,13 @@ class igs_bitswap_device : public device_t public: igs_bitswap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_in_pa_callback(Object &&cb) { return m_in_pa_cb.set_callback(std::forward(cb)); } - template devcb_base &set_in_pb_callback(Object &&cb) { return m_in_pb_cb.set_callback(std::forward(cb)); } - template devcb_base &set_in_pc_callback(Object &&cb) { return m_in_pc_cb.set_callback(std::forward(cb)); } + auto in_pa_callback() { return m_in_pa_cb.bind(); } + auto in_pb_callback() { return m_in_pb_cb.bind(); } + auto in_pc_callback() { return m_in_pc_cb.bind(); } - template devcb_base &set_out_pa_callback(Object &&cb) { return m_out_pa_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_pb_callback(Object &&cb) { return m_out_pb_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_pc_callback(Object &&cb) { return m_out_pc_cb.set_callback(std::forward(cb)); } + auto out_pa_callback() { return m_out_pa_cb.bind(); } + auto out_pb_callback() { return m_out_pb_cb.bind(); } + auto out_pc_callback() { return m_out_pc_cb.bind(); } DECLARE_WRITE8_MEMBER( address_w ); DECLARE_WRITE8_MEMBER( data_w ); @@ -162,43 +162,6 @@ void igs_bitswap_device::set_val_xor(uint16_t val_xor) #endif } -#define MCFG_IGS_BITSWAP_IN_PORTA_CB(_devcb) \ - downcast(*device).set_in_pa_callback(DEVCB_##_devcb); - -#define MCFG_IGS_BITSWAP_IN_PORTB_CB(_devcb) \ - downcast(*device).set_in_pb_callback(DEVCB_##_devcb); - -#define MCFG_IGS_BITSWAP_IN_PORTC_CB(_devcb) \ - downcast(*device).set_in_pc_callback(DEVCB_##_devcb); - -#define MCFG_IGS_BITSWAP_OUT_PORTA_CB(_devcb) \ - downcast(*device).set_out_pa_callback(DEVCB_##_devcb); - -#define MCFG_IGS_BITSWAP_OUT_PORTB_CB(_devcb) \ - downcast(*device).set_out_pb_callback(DEVCB_##_devcb); - -#define MCFG_IGS_BITSWAP_OUT_PORTC_CB(_devcb) \ - downcast(*device).set_out_pc_callback(DEVCB_##_devcb); - -// note: b3 seems fixed to ~15, it may go away in the future -#define MCFG_IGS_BITSWAP_M3_0_BITS(_b0, _b1, _b2, _b3) \ - downcast(*device).set_m3_bits(0, _b0, _b1, _b2, _b3); - -#define MCFG_IGS_BITSWAP_M3_1_BITS(_b0, _b1, _b2, _b3) \ - downcast(*device).set_m3_bits(1, _b0, _b1, _b2, _b3); - -#define MCFG_IGS_BITSWAP_M3_2_BITS(_b0, _b1, _b2, _b3) \ - downcast(*device).set_m3_bits(2, _b0, _b1, _b2, _b3); - -#define MCFG_IGS_BITSWAP_M3_3_BITS(_b0, _b1, _b2, _b3) \ - downcast(*device).set_m3_bits(3, _b0, _b1, _b2, _b3); - -#define MCFG_IGS_BITSWAP_MF_BITS(_b0, _b1, _b2, _b3) \ - downcast(*device).set_mf_bits(_b0, _b1, _b2, _b3); - -#define MCFG_IGS_BITSWAP_VAL_XOR(_val_xor) \ - downcast(*device).set_val_xor(_val_xor); - DEFINE_DEVICE_TYPE(IGS_BITSWAP, igs_bitswap_device, "igs_bitswap", "IGS Bitswap Protection") igs_bitswap_device::igs_bitswap_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : @@ -3568,19 +3531,19 @@ MACHINE_CONFIG_START(igs017_state::iqblocka) ppi.in_pc_callback().set_ioport("DSW3"); // protection - MCFG_DEVICE_ADD("igs_bitswap", IGS_BITSWAP, 0) - MCFG_IGS_BITSWAP_IN_PORTA_CB(IOPORT("PLAYER1")) - MCFG_IGS_BITSWAP_IN_PORTB_CB(IOPORT("PLAYER2")) - MCFG_IGS_BITSWAP_IN_PORTC_CB(IOPORT("COINS")) - MCFG_IGS_BITSWAP_OUT_PORTA_CB(WRITE8(*this, igs017_state, iqblocka_keyin_w)) - MCFG_IGS_BITSWAP_VAL_XOR(0x15d6) - MCFG_IGS_BITSWAP_MF_BITS(3, 5, 9, 11) - MCFG_IGS_BITSWAP_M3_0_BITS(~5, 8, ~10, ~15) - MCFG_IGS_BITSWAP_M3_1_BITS( 3, ~8, ~12, ~15) - MCFG_IGS_BITSWAP_M3_2_BITS( 2, ~6, ~11, ~15) - MCFG_IGS_BITSWAP_M3_3_BITS( 0, ~1, ~3, ~15) - - MCFG_DEVICE_ADD("igs_incdec", IGS_INCDEC, 0) + IGS_BITSWAP(config, m_igs_bitswap, 0); + m_igs_bitswap->in_pa_callback().set_ioport("PLAYER1"); + m_igs_bitswap->in_pb_callback().set_ioport("PLAYER2"); + m_igs_bitswap->in_pc_callback().set_ioport("COINS"); + m_igs_bitswap->out_pa_callback().set(FUNC(igs017_state::iqblocka_keyin_w)); + m_igs_bitswap->set_val_xor(0x15d6); + m_igs_bitswap->set_mf_bits(3, 5, 9, 11); + m_igs_bitswap->set_m3_bits(0, ~5, 8, ~10, ~15); + m_igs_bitswap->set_m3_bits(1, 3, ~8, ~12, ~15); + m_igs_bitswap->set_m3_bits(2, 2, ~6, ~11, ~15); + m_igs_bitswap->set_m3_bits(3, 0, ~1, ~3, ~15); + + IGS_INCDEC(config, m_igs_incdec, 0); // video MCFG_SCREEN_ADD("screen", RASTER) @@ -3594,8 +3557,8 @@ MACHINE_CONFIG_START(igs017_state::iqblocka) MCFG_PALETTE_ADD("palette", 0x100*2) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_palette("palette"); // sound SPEAKER(config, "mono").front_center(); @@ -3606,22 +3569,24 @@ MACHINE_CONFIG_START(igs017_state::iqblocka) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) MACHINE_CONFIG_END -MACHINE_CONFIG_START(igs017_state::iqblockf) +void igs017_state::iqblockf(machine_config &config) +{ iqblocka(config); - MCFG_DEVICE_MODIFY("igs_bitswap") // tweaked protection bitswap - MCFG_IGS_BITSWAP_OUT_PORTB_CB(WRITE8(*this, igs017_state, iqblockf_keyout_w)) - MCFG_IGS_BITSWAP_MF_BITS(0, 5, 9, 13) -MACHINE_CONFIG_END + // tweaked protection bitswap + m_igs_bitswap->out_pb_callback().set(FUNC(igs017_state::iqblockf_keyout_w)); + m_igs_bitswap->set_mf_bits(0, 5, 9, 13); +} -MACHINE_CONFIG_START(igs017_state::genius6) +void igs017_state::genius6(machine_config &config) +{ iqblockf(config); - MCFG_DEVICE_MODIFY("igs_bitswap") // tweaked protection bitswap - MCFG_IGS_BITSWAP_MF_BITS(2, 7, 9, 13) - MCFG_IGS_BITSWAP_M3_0_BITS(~5, 6, ~7, ~15) - MCFG_IGS_BITSWAP_M3_1_BITS( 1, ~6, ~9, ~15) - MCFG_IGS_BITSWAP_M3_2_BITS( 4, ~8, ~12, ~15) - MCFG_IGS_BITSWAP_M3_3_BITS( 3, ~5, ~6, ~15) -MACHINE_CONFIG_END + // tweaked protection bitswap + m_igs_bitswap->set_mf_bits(2, 7, 9, 13); + m_igs_bitswap->set_m3_bits(0, ~5, 6, ~7, ~15); + m_igs_bitswap->set_m3_bits(1, 1, ~6, ~9, ~15); + m_igs_bitswap->set_m3_bits(2, 4, ~8, ~12, ~15); + m_igs_bitswap->set_m3_bits(3, 3, ~5, ~6, ~15); +} MACHINE_CONFIG_START(igs017_state::starzan) iqblocka(config); @@ -3677,9 +3642,9 @@ MACHINE_CONFIG_START(igs017_state::mgcs) MCFG_PALETTE_ADD("palette", 0x100*2) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_IGS017_IGS031_PALETTE_SCRAMBLE_CB( igs017_state, mgcs_palette_bitswap ) - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::mgcs_palette_bitswap), this); + m_igs017_igs031->set_palette("palette"); // sound SPEAKER(config, "mono").front_center(); @@ -3721,9 +3686,9 @@ MACHINE_CONFIG_START(igs017_state::lhzb2) MCFG_PALETTE_ADD("palette", 0x100*2) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_IGS017_IGS031_PALETTE_SCRAMBLE_CB( igs017_state, lhzb2a_palette_bitswap ) - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap), this); + m_igs017_igs031->set_palette("palette"); // sound SPEAKER(config, "mono").front_center(); @@ -3748,18 +3713,18 @@ MACHINE_CONFIG_START(igs017_state::lhzb2a) MCFG_MACHINE_RESET_OVERRIDE(igs017_state,lhzb2a) // i/o -// MCFG_DEVICE_ADD("ppi8255", I8255A, 0) +// I8255A(config, "ppi8255", 0); // protection - MCFG_DEVICE_ADD("igs_bitswap", IGS_BITSWAP, 0) - MCFG_IGS_BITSWAP_VAL_XOR(0x289a) - MCFG_IGS_BITSWAP_MF_BITS(4, 7, 10, 13) - MCFG_IGS_BITSWAP_M3_0_BITS(~3, 8, ~12, ~15) - MCFG_IGS_BITSWAP_M3_1_BITS(~3, ~6, ~9, ~15) - MCFG_IGS_BITSWAP_M3_2_BITS(~3, 4, ~5, ~15) - MCFG_IGS_BITSWAP_M3_3_BITS(~9, ~11, 12, ~15) + IGS_BITSWAP(config, m_igs_bitswap, 0); + m_igs_bitswap->set_val_xor(0x289a); + m_igs_bitswap->set_mf_bits(4, 7, 10, 13); + m_igs_bitswap->set_m3_bits(0, ~3, 8, ~12, ~15); + m_igs_bitswap->set_m3_bits(1, ~3, ~6, ~9, ~15); + m_igs_bitswap->set_m3_bits(2, ~3, 4, ~5, ~15); + m_igs_bitswap->set_m3_bits(3, ~9, ~11, 12, ~15); - MCFG_DEVICE_ADD("igs_incdec", IGS_INCDEC, 0) + IGS_INCDEC(config, m_igs_incdec, 0); // video MCFG_SCREEN_ADD("screen", RASTER) @@ -3773,9 +3738,9 @@ MACHINE_CONFIG_START(igs017_state::lhzb2a) MCFG_PALETTE_ADD("palette", 0x100*2) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_IGS017_IGS031_PALETTE_SCRAMBLE_CB( igs017_state, lhzb2a_palette_bitswap ) - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::lhzb2a_palette_bitswap), this); + m_igs017_igs031->set_palette("palette"); // sound SPEAKER(config, "mono").front_center(); @@ -3817,9 +3782,9 @@ MACHINE_CONFIG_START(igs017_state::slqz2) MCFG_PALETTE_ADD("palette", 0x100*2) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_IGS017_IGS031_PALETTE_SCRAMBLE_CB( igs017_state, slqz2_palette_bitswap ) - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::slqz2_palette_bitswap), this); + m_igs017_igs031->set_palette("palette"); // sound SPEAKER(config, "mono").front_center(); @@ -3854,8 +3819,8 @@ MACHINE_CONFIG_START(igs017_state::sdmg2) MCFG_PALETTE_ADD("palette", 0x100*2) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_palette("palette"); // sound SPEAKER(config, "mono").front_center(); @@ -3900,8 +3865,8 @@ MACHINE_CONFIG_START(igs017_state::mgdha) MCFG_PALETTE_ADD("palette", 0x100*2) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_palette("palette"); // sound SPEAKER(config, "mono").front_center(); @@ -3938,9 +3903,9 @@ MACHINE_CONFIG_START(igs017_state::tjsb) MCFG_PALETTE_ADD("palette", 0x100*2) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_IGS017_IGS031_PALETTE_SCRAMBLE_CB( igs017_state, tjsb_palette_bitswap ) - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_palette_scramble_cb(FUNC(igs017_state::tjsb_palette_bitswap), this); + m_igs017_igs031->set_palette("palette"); // sound SPEAKER(config, "mono").front_center(); @@ -3980,8 +3945,8 @@ MACHINE_CONFIG_START(igs017_state::spkrform) MCFG_PALETTE_ADD("palette", 0x100*2) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_palette("palette"); // sound SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/igs_m027.cpp b/src/mame/drivers/igs_m027.cpp index b0fb6d571c6..7d27f2eceef 100644 --- a/src/mame/drivers/igs_m027.cpp +++ b/src/mame/drivers/igs_m027.cpp @@ -7,7 +7,7 @@ This is an ARM7 with Internal ROM. (Also used on later PGM games) - In some cases the first part of the Internal ROM is excute only, and + In some cases the first part of the Internal ROM is execute only, and cannot be read out with a trojan. It hasn't been confirmed if these games make use of that feature. @@ -346,11 +346,11 @@ MACHINE_CONFIG_START(igs_m027_state::igs_majhong) MCFG_PALETTE_ADD("palette", 0x200) // MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_IGS017_IGS031_REVERSE_TEXT_BITS - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_text_reverse_bits(); + m_igs017_igs031->set_palette("palette"); - // 82C55? (accessed through igs017/igs031 area like igs017.c?) + // 82C55? (accessed through igs017/igs031 area like igs017.cpp?) /* sound hardware */ // OK6295 @@ -380,11 +380,11 @@ MACHINE_CONFIG_START(igs_m027_state::amazonia) MCFG_PALETTE_ADD("palette", 0x200) // MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB) - MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0) - MCFG_IGS017_IGS031_REVERSE_TEXT_BITS - MCFG_GFX_PALETTE("palette") + IGS017_IGS031(config, m_igs017_igs031, 0); + m_igs017_igs031->set_text_reverse_bits(); + m_igs017_igs031->set_palette("palette"); - // 82C55? (accessed through igs017/igs031 area like igs017.c?) + // 82C55? (accessed through igs017/igs031 area like igs017.cpp?) /* sound hardware */ // OK6295 diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp index bd7456e7cbe..5c4d0adc95c 100644 --- a/src/mame/drivers/konamigx.cpp +++ b/src/mame/drivers/konamigx.cpp @@ -1662,9 +1662,9 @@ MACHINE_CONFIG_START(konamigx_state::konamigx) MCFG_K055555_ADD("k055555") - MCFG_DEVICE_ADD("k054338", K054338, 0, "k055555") - MCFG_VIDEO_SET_SCREEN("screen") - MCFG_K054338_ALPHAINV(1) + K054338(config, m_k054338, 0, m_k055555); + m_k054338->set_screen(m_screen); + m_k054338->set_alpha_invert(1); MCFG_DEVICE_ADD("k055673", K055673, 0) MCFG_K055673_CB(konamigx_state, type2_sprite_callback) diff --git a/src/mame/drivers/konendev.cpp b/src/mame/drivers/konendev.cpp index 2720d850532..d7af812563c 100644 --- a/src/mame/drivers/konendev.cpp +++ b/src/mame/drivers/konendev.cpp @@ -321,8 +321,8 @@ MACHINE_CONFIG_START(konendev_state::konendev) MCFG_SCREEN_UPDATE_DRIVER(konendev_state, screen_update) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("gcu", K057714, 0) - MCFG_K057714_IRQ_CALLBACK(WRITELINE(*this, konendev_state, gcu_interrupt)) + K057714(config, m_gcu, 0); + m_gcu->irq_callback().set(FUNC(konendev_state::gcu_interrupt)); NVRAM(config, "nvram0", nvram_device::DEFAULT_ALL_0); NVRAM(config, "nvram1", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/konmedal.cpp b/src/mame/drivers/konmedal.cpp index 2479b83d3d5..c451ea611ee 100644 --- a/src/mame/drivers/konmedal.cpp +++ b/src/mame/drivers/konmedal.cpp @@ -562,9 +562,9 @@ MACHINE_CONFIG_START(konmedal_state::shuriboy) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_ENABLE_HILIGHTS() - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(konmedal_state, shuriboy_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(konmedal_state::shuriboy_tile_callback), this); MCFG_MACHINE_START_OVERRIDE(konmedal_state, shuriboy) diff --git a/src/mame/drivers/legionna.cpp b/src/mame/drivers/legionna.cpp index 2a715ccb9d8..3eb966cd12d 100644 --- a/src/mame/drivers/legionna.cpp +++ b/src/mame/drivers/legionna.cpp @@ -1222,10 +1222,10 @@ MACHINE_CONFIG_START(legionna_state::legionna) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, legionna_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_REG_1A_CB(WRITE16(*this, legionna_state, tile_vreg_1a_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, legionna_state, tile_scroll_w)) + SEIBU_CRTC(config, m_crtc, 0); + m_crtc->layer_en_callback().set(FUNC(legionna_state::tilemap_enable_w)); + m_crtc->reg_1a_callback().set(FUNC(legionna_state::tile_vreg_1a_w)); + m_crtc->layer_scroll_callback().set(FUNC(legionna_state::tile_scroll_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_legionna) MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16) @@ -1276,11 +1276,10 @@ MACHINE_CONFIG_START(legionna_state::heatbrl) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_heatbrl) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, legionna_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_REG_1A_CB(WRITE16(*this, legionna_state, tile_vreg_1a_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, legionna_state, tile_scroll_w)) - + SEIBU_CRTC(config, m_crtc, 0); + m_crtc->layer_en_callback().set(FUNC(legionna_state::tilemap_enable_w)); + m_crtc->reg_1a_callback().set(FUNC(legionna_state::tile_vreg_1a_w)); + m_crtc->layer_scroll_callback().set(FUNC(legionna_state::tile_scroll_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_heatbrl) @@ -1333,11 +1332,11 @@ MACHINE_CONFIG_START(legionna_state::godzilla) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, legionna_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, legionna_state, tile_scroll_w)) - MCFG_SEIBU_CRTC_REG_1A_CB(WRITE16(*this, legionna_state, tile_vreg_1a_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_BASE_CB(WRITE16(*this, legionna_state, tile_scroll_base_w)) + SEIBU_CRTC(config, m_crtc, 0); + m_crtc->layer_en_callback().set(FUNC(legionna_state::tilemap_enable_w)); + m_crtc->layer_scroll_callback().set(FUNC(legionna_state::tile_scroll_w)); + m_crtc->reg_1a_callback().set(FUNC(legionna_state::tile_vreg_1a_w)); + m_crtc->layer_scroll_base_callback().set(FUNC(legionna_state::tile_scroll_base_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_heatbrl) @@ -1391,11 +1390,10 @@ MACHINE_CONFIG_START(legionna_state::denjinmk) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_heatbrl) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, legionna_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, legionna_state, tile_scroll_w)) - MCFG_SEIBU_CRTC_REG_1A_CB(WRITE16(*this, legionna_state, tile_vreg_1a_w)) - + SEIBU_CRTC(config, m_crtc, 0); + m_crtc->layer_en_callback().set(FUNC(legionna_state::tilemap_enable_w)); + m_crtc->layer_scroll_callback().set(FUNC(legionna_state::tile_scroll_w)); + m_crtc->reg_1a_callback().set(FUNC(legionna_state::tile_vreg_1a_w)); MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*16) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) @@ -1445,11 +1443,10 @@ MACHINE_CONFIG_START(legionna_state::grainbow) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, legionna_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, legionna_state, tile_scroll_w)) - MCFG_SEIBU_CRTC_REG_1A_CB(WRITE16(*this, legionna_state, tile_vreg_1a_w)) - + SEIBU_CRTC(config, m_crtc, 0); + m_crtc->layer_en_callback().set(FUNC(legionna_state::tilemap_enable_w)); + m_crtc->layer_scroll_callback().set(FUNC(legionna_state::tile_scroll_w)); + m_crtc->reg_1a_callback().set(FUNC(legionna_state::tile_vreg_1a_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_grainbow) @@ -1502,11 +1499,10 @@ MACHINE_CONFIG_START(legionna_state::cupsoc) MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, legionna_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, legionna_state, tile_scroll_w)) - MCFG_SEIBU_CRTC_REG_1A_CB(WRITE16(*this, legionna_state, tile_vreg_1a_w)) - + SEIBU_CRTC(config, m_crtc, 0); + m_crtc->layer_en_callback().set(FUNC(legionna_state::tilemap_enable_w)); + m_crtc->layer_scroll_callback().set(FUNC(legionna_state::tile_scroll_w)); + m_crtc->reg_1a_callback().set(FUNC(legionna_state::tile_vreg_1a_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_cupsoc) diff --git a/src/mame/drivers/lethal.cpp b/src/mame/drivers/lethal.cpp index 81f38320f51..a9d7c091a71 100644 --- a/src/mame/drivers/lethal.cpp +++ b/src/mame/drivers/lethal.cpp @@ -521,11 +521,11 @@ MACHINE_CONFIG_START(lethal_state::lethalen) MCFG_K056832_CONFIG("gfx1", K056832_BPP_8LE, 1, 0) MCFG_K056832_PALETTE("palette") - MCFG_DEVICE_ADD("k053244", K053244, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_BPP(6) - MCFG_K05324X_OFFSETS(95, 0) - MCFG_K05324X_CB(lethal_state, sprite_callback) + K053244(config, m_k053244, 0); + m_k053244->set_palette(m_palette); + m_k053244->set_bpp(6); + m_k053244->set_offsets(95, 0); + m_k053244->set_sprite_callback(FUNC(lethal_state::sprite_callback), this); MCFG_K054000_ADD("k054000") @@ -547,8 +547,7 @@ MACHINE_CONFIG_START(lethal_state::lethalej) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(224, 512-1, 16, 240-1) - MCFG_DEVICE_MODIFY("k053244") - MCFG_K05324X_OFFSETS(-105, 0) + m_k053244->set_offsets(-105, 0); MACHINE_CONFIG_END ROM_START( lethalen ) // US version UAE diff --git a/src/mame/drivers/mainevt.cpp b/src/mame/drivers/mainevt.cpp index f0827cb1d4d..5089dc1a0d1 100644 --- a/src/mame/drivers/mainevt.cpp +++ b/src/mame/drivers/mainevt.cpp @@ -448,14 +448,14 @@ MACHINE_CONFIG_START(mainevt_state::mainevt) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 24_MHz_XTAL) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(mainevt_state, mainevt_tile_callback) + K052109(config, m_k052109, 24_MHz_XTAL); + m_k052109->set_palette("palette"); + m_k052109->set_tile_callback(FUNC(mainevt_state::mainevt_tile_callback), this); - MCFG_DEVICE_ADD("k051960", K051960, 24_MHz_XTAL) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(mainevt_state, mainevt_sprite_callback) + K051960(config, m_k051960, 24_MHz_XTAL); + m_k051960->set_palette("palette"); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(mainevt_state::mainevt_sprite_callback), this); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -497,14 +497,14 @@ MACHINE_CONFIG_START(mainevt_state::devstors) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 24_MHz_XTAL) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(mainevt_state, dv_tile_callback) + K052109(config, m_k052109, 24_MHz_XTAL); + m_k052109->set_palette("palette"); + m_k052109->set_tile_callback(FUNC(mainevt_state::dv_tile_callback), this); - MCFG_DEVICE_ADD("k051960", K051960, 24_MHz_XTAL) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(mainevt_state, dv_sprite_callback) + K051960(config, m_k051960, 24_MHz_XTAL); + m_k051960->set_palette("palette"); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(mainevt_state::dv_sprite_callback), this); MCFG_K051733_ADD("k051733") diff --git a/src/mame/drivers/maxaflex.cpp b/src/mame/drivers/maxaflex.cpp index f8242193dd2..0f3a37d056f 100644 --- a/src/mame/drivers/maxaflex.cpp +++ b/src/mame/drivers/maxaflex.cpp @@ -333,9 +333,9 @@ MACHINE_CONFIG_START(maxaflex_state::maxaflex) MCFG_M68705_PORTB_W_CB(WRITE8(*this, maxaflex_state, mcu_portB_w)) MCFG_M68705_PORTC_W_CB(WRITE8(*this, maxaflex_state, mcu_portC_w)) - MCFG_DEVICE_ADD("gtia", ATARI_GTIA, 0) - MCFG_GTIA_REGION(GTIA_NTSC) - MCFG_GTIA_READ_CB(IOPORT("console")) + ATARI_GTIA(config, m_gtia, 0); + m_gtia->set_region(GTIA_NTSC); + m_gtia->read_callback().set_ioport("console"); MCFG_DEVICE_ADD("antic", ATARI_ANTIC, 0) MCFG_ANTIC_GTIA("gtia") diff --git a/src/mame/drivers/model1.cpp b/src/mame/drivers/model1.cpp index ea63a17904f..4ef24124c2c 100644 --- a/src/mame/drivers/model1.cpp +++ b/src/mame/drivers/model1.cpp @@ -1701,8 +1701,7 @@ MACHINE_CONFIG_START(model1_state::model1) MB8421(config, m_dpram, 0); - MCFG_DEVICE_ADD("tile", S24TILE, 0, 0x3fff) - MCFG_GFX_PALETTE("palette") + S24TILE(config, m_tiles, 0, 0x3fff).set_palette(m_palette); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK ) diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp index e3487f79106..96d3e8d51bc 100644 --- a/src/mame/drivers/model2.cpp +++ b/src/mame/drivers/model2.cpp @@ -2434,10 +2434,10 @@ MACHINE_CONFIG_START(model2_state::model2_timers) MACHINE_CONFIG_END MACHINE_CONFIG_START(model2_state::model2_screen) - MCFG_DEVICE_ADD("tile", S24TILE, 0, 0x3fff) - MCFG_GFX_PALETTE("palette") - MCFG_S24TILE_XHOUT_CALLBACK(WRITE16(*this, model2_state, horizontal_sync_w)) - MCFG_S24TILE_XVOUT_CALLBACK(WRITE16(*this, model2_state, vertical_sync_w)) + S24TILE(config, m_tiles, 0, 0x3fff); + m_tiles->set_palette(m_palette); + m_tiles->xhout_write_callback().set(FUNC(model2_state::horizontal_sync_w)); + m_tiles->xvout_write_callback().set(FUNC(model2_state::vertical_sync_w)); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) diff --git a/src/mame/drivers/moo.cpp b/src/mame/drivers/moo.cpp index daa24c6120b..9e20d660f33 100644 --- a/src/mame/drivers/moo.cpp +++ b/src/mame/drivers/moo.cpp @@ -538,9 +538,9 @@ MACHINE_CONFIG_START(moo_state::moo) MCFG_K056832_CONFIG("gfx1", K056832_BPP_4, 1, 0) MCFG_K056832_PALETTE("palette") - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); - MCFG_DEVICE_ADD("k054338", K054338, 0) + K054338(config, m_k054338, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -593,9 +593,9 @@ MACHINE_CONFIG_START(moo_state::moobl) MCFG_K056832_CONFIG("gfx1", K056832_BPP_4, 1, 0) MCFG_K056832_PALETTE("palette") - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); - MCFG_DEVICE_ADD("k054338", K054338, 0) + K054338(config, m_k054338, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp index 8f13fca6bc1..9c58f554757 100644 --- a/src/mame/drivers/mystwarr.cpp +++ b/src/mame/drivers/mystwarr.cpp @@ -985,8 +985,8 @@ MACHINE_CONFIG_START(mystwarr_state::mystwarr) MCFG_K055673_CONFIG("gfx2", K055673_LAYOUT_GX, -48, -24) MCFG_K055673_PALETTE("palette") - MCFG_DEVICE_ADD("k054338", K054338, 0, "k055555") - MCFG_K054338_ALPHAINV(1) + K054338(config, m_k054338, 0, m_k055555); + m_k054338->set_alpha_invert(1); MCFG_VIDEO_START_OVERRIDE(mystwarr_state, mystwarr) diff --git a/src/mame/drivers/namcond1.cpp b/src/mame/drivers/namcond1.cpp index f674a76d775..1c5a8027c14 100644 --- a/src/mame/drivers/namcond1.cpp +++ b/src/mame/drivers/namcond1.cpp @@ -381,11 +381,11 @@ MACHINE_CONFIG_START(namcond1_state::namcond1) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) - MCFG_DEVICE_ADD("ygv608", YGV608, 0) - MCFG_GFX_PALETTE("palette") - MCFG_YGV608_VBLANK_HANDLER(WRITELINE(*this, namcond1_state, vblank_irq_w)) - MCFG_YGV608_RASTER_HANDLER(WRITELINE(*this, namcond1_state, raster_irq_w)) - MCFG_VIDEO_SET_SCREEN("screen") + YGV608(config, m_ygv608, 0); + m_ygv608->set_palette("palette"); + m_ygv608->vblank_callback().set(FUNC(namcond1_state::vblank_irq_w)); + m_ygv608->raster_callback().set(FUNC(namcond1_state::raster_irq_w)); + m_ygv608->set_screen("screen"); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp index 980e18a8267..02a271e97c8 100644 --- a/src/mame/drivers/naomi.cpp +++ b/src/mame/drivers/naomi.cpp @@ -2922,7 +2922,8 @@ MACHINE_CONFIG_START(dc_state::naomi_aw_base) MCFG_SCREEN_RAW_PARAMS(13458568*2, 820, 0, 640, 532, 0, 480) /* TODO: where pclk actually comes? */ MCFG_SCREEN_UPDATE_DEVICE("powervr2", powervr2_device, screen_update) MCFG_PALETTE_ADD("palette", 0x1000) - MCFG_POWERVR2_ADD("powervr2", WRITE8(*this, dc_state, pvr_irq)) + POWERVR2(config, m_powervr2, 0); + m_powervr2->irq_callback().set(FUNC(dc_state::pvr_irq)); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -3042,11 +3043,13 @@ MACHINE_CONFIG_END * Naomi 2 GD-Rom */ -MACHINE_CONFIG_START(naomi2_state::naomi2_base) - MCFG_POWERVR2_ADD("powervr2_slave", WRITE8(*this, dc_state, pvr_irq)) +void naomi2_state::naomi2_base(machine_config &config) +{ + POWERVR2(config, m_powervr2_slave, 0); + m_powervr2_slave->irq_callback().set(FUNC(dc_state::pvr_irq)); // TODO: ELAN device -MACHINE_CONFIG_END +} MACHINE_CONFIG_START(naomi2_state::naomi2gd) naomigd(config); diff --git a/src/mame/drivers/parodius.cpp b/src/mame/drivers/parodius.cpp index e23ab184b00..8eedbd0a4a8 100644 --- a/src/mame/drivers/parodius.cpp +++ b/src/mame/drivers/parodius.cpp @@ -258,16 +258,15 @@ MACHINE_CONFIG_START(parodius_state::parodius) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(parodius_state, tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette("palette"); + m_k052109->set_tile_callback(FUNC(parodius_state::tile_callback), this); - MCFG_DEVICE_ADD("k053245", K053245, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(0, 0) - MCFG_K05324X_CB(parodius_state, sprite_callback) + K053245(config, m_k053245, 0); + m_k053245->set_palette("palette"); + m_k053245->set_sprite_callback(FUNC(parodius_state::sprite_callback), this); - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/pcd.cpp b/src/mame/drivers/pcd.cpp index 3c9104d2504..2805ff9780e 100644 --- a/src/mame/drivers/pcd.cpp +++ b/src/mame/drivers/pcd.cpp @@ -586,8 +586,8 @@ MACHINE_CONFIG_START(pcd_state::pcx) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_IO_MAP(pcx_io) - MCFG_DEVICE_REPLACE("video", PCX_VIDEO, 0) - MCFG_PCX_VIDEO_TXD_HANDLER(WRITELINE("keyboard", pcd_keyboard_device, t0_w)) + pcx_video_device &video(PCX_VIDEO(config.replace(), "video", 0)); + video.txd_handler().set("keyboard", FUNC(pcd_keyboard_device::t0_w)); MCFG_DEVICE_MODIFY("keyboard") MCFG_PCD_KEYBOARD_OUT_TX_HANDLER(WRITELINE("video", pcx_video_device, rx_w)) diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp index 824b2d40464..110583d7865 100644 --- a/src/mame/drivers/piratesh.cpp +++ b/src/mame/drivers/piratesh.cpp @@ -647,8 +647,7 @@ MACHINE_CONFIG_START(piratesh_state::piratesh) //MCFG_K053246_CONFIG("gfx2", NORMAL_PLANE_ORDER, -48+1, 23) //MCFG_K053246_PALETTE("palette") - MCFG_DEVICE_ADD("k054338", K054338, 0, "k055555") - MCFG_K054338_ALPHAINV(1) + K054338(config, "k054338", 0, m_k055555).set_alpha_invert(1); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/quickpick5.cpp b/src/mame/drivers/quickpick5.cpp index 4e1ef607d08..10eda7e033a 100644 --- a/src/mame/drivers/quickpick5.cpp +++ b/src/mame/drivers/quickpick5.cpp @@ -424,10 +424,10 @@ MACHINE_CONFIG_START(quickpick5_state::quickpick5) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k053245", K053245, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(-(44+80), 20) - MCFG_K05324X_CB(quickpick5_state, sprite_callback) + K053245(config, m_k053245, 0); + m_k053245->set_palette(m_palette); + m_k053245->set_offsets(-(44+80), 20); + m_k053245->set_sprite_callback(FUNC(quickpick5_state::sprite_callback), this); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfxdecode_device::empty) diff --git a/src/mame/drivers/r2dx_v33.cpp b/src/mame/drivers/r2dx_v33.cpp index b90fc65f587..fcec4ceb702 100644 --- a/src/mame/drivers/r2dx_v33.cpp +++ b/src/mame/drivers/r2dx_v33.cpp @@ -808,9 +808,9 @@ MACHINE_CONFIG_START(r2dx_v33_state::rdx_v33) MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, raiden2_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, raiden2_state, tile_scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.layer_en_callback().set(FUNC(raiden2_state::tilemap_enable_w)); + crtc.layer_scroll_callback().set(FUNC(raiden2_state::tile_scroll_w)); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -847,9 +847,9 @@ MACHINE_CONFIG_START(r2dx_v33_state::nzerotea) MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, raiden2_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, raiden2_state, tile_scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.layer_en_callback().set(FUNC(raiden2_state::tilemap_enable_w)); + crtc.layer_scroll_callback().set(FUNC(raiden2_state::tile_scroll_w)); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/raiden.cpp b/src/mame/drivers/raiden.cpp index 11b317ddbc2..cc649d603df 100644 --- a/src/mame/drivers/raiden.cpp +++ b/src/mame/drivers/raiden.cpp @@ -430,9 +430,9 @@ MACHINE_CONFIG_START(raiden_state::raidenb) /* video hardware */ MCFG_VIDEO_START_OVERRIDE(raiden_state,raidenb) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, raiden_state, raidenb_layer_enable_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, raiden_state, raidenb_layer_scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.layer_en_callback().set(FUNC(raiden_state::raidenb_layer_enable_w)); + crtc.layer_scroll_callback().set(FUNC(raiden_state::raidenb_layer_scroll_w)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_DRIVER(raiden_state, screen_update_raidenb) diff --git a/src/mame/drivers/raiden2.cpp b/src/mame/drivers/raiden2.cpp index 79b62c9f224..8d0cc366d12 100644 --- a/src/mame/drivers/raiden2.cpp +++ b/src/mame/drivers/raiden2.cpp @@ -1444,9 +1444,9 @@ MACHINE_CONFIG_START(raiden2_state::raiden2) MCFG_PALETTE_ADD("palette", 2048) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, raiden2_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, raiden2_state, tile_scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.layer_en_callback().set(FUNC(raiden2_state::tilemap_enable_w)); + crtc.layer_scroll_callback().set(FUNC(raiden2_state::tile_scroll_w)); MCFG_DEVICE_ADD("raiden2cop", RAIDEN2COP, 0) MCFG_RAIDEN2COP_VIDEORAM_OUT_CB(WRITE16(*this, raiden2_state, m_videoram_private_w)) @@ -1521,9 +1521,9 @@ MACHINE_CONFIG_START(raiden2_state::zeroteam) MCFG_PALETTE_ADD("palette", 2048) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, raiden2_state, tilemap_enable_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, raiden2_state, tile_scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.layer_en_callback().set(FUNC(raiden2_state::tilemap_enable_w)); + crtc.layer_scroll_callback().set(FUNC(raiden2_state::tile_scroll_w)); MCFG_DEVICE_ADD("raiden2cop", RAIDEN2COP, 0) MCFG_RAIDEN2COP_VIDEORAM_OUT_CB(WRITE16(*this, raiden2_state, m_videoram_private_w)) diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index 350204e5986..25ee0863828 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -3231,12 +3231,11 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) MCFG_SCREEN_PALETTE("vt100_video:palette") MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "vt100_video:palette", gfx_rainbow) - MCFG_DEVICE_ADD("vt100_video", RAINBOW_VIDEO, 24.0734_MHz_XTAL) - - MCFG_VT_SET_SCREEN("screen") - MCFG_VT_CHARGEN("chargen") - MCFG_VT_VIDEO_RAM_CALLBACK(READ8(*this, rainbow_state, read_video_ram_r)) - MCFG_VT_VIDEO_VERT_FREQ_INTR_CALLBACK(WRITELINE(*this, rainbow_state, video_interrupt)) + RAINBOW_VIDEO(config, m_crtc, 24.0734_MHz_XTAL); + m_crtc->set_screen("screen"); + m_crtc->set_chargen("chargen"); + m_crtc->ram_rd_callback().set(FUNC(rainbow_state::read_video_ram_r)); + m_crtc->vert_freq_intr_wr_callback().set(FUNC(rainbow_state::video_interrupt)); // *************************** COLOR GRAPHICS (OPTION) ************************************** // While the OSC frequency is confirmed, the divider is not (refresh rate is ~60 Hz with 32). diff --git a/src/mame/drivers/rollerg.cpp b/src/mame/drivers/rollerg.cpp index 494c5462dd8..60e372ab36e 100644 --- a/src/mame/drivers/rollerg.cpp +++ b/src/mame/drivers/rollerg.cpp @@ -271,10 +271,10 @@ MACHINE_CONFIG_START(rollerg_state::rollerg) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k053244", K053244, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(-3, -1) - MCFG_K05324X_CB(rollerg_state, sprite_callback) + K053244(config, m_k053244, 0); + m_k053244->set_palette("palette"); + m_k053244->set_offsets(-3, -1); + m_k053244->set_sprite_callback(FUNC(rollerg_state::sprite_callback), this); MCFG_DEVICE_ADD("k051316", K051316, 0) MCFG_GFX_PALETTE("palette") diff --git a/src/mame/drivers/segam1.cpp b/src/mame/drivers/segam1.cpp index e9e8aa32da9..7a764e05996 100644 --- a/src/mame/drivers/segam1.cpp +++ b/src/mame/drivers/segam1.cpp @@ -377,9 +377,8 @@ MACHINE_CONFIG_START(segam1_state::segam1) mb8421_device &dpram(MB8421(config, "dpram")); dpram.intl_callback().set_inputline("m1comm", 0); - MCFG_DEVICE_ADD("tile", S24TILE, 0, 0x3fff) - MCFG_GFX_PALETTE("palette") - MCFG_DEVICE_ADD("mixer", S24MIXER, 0) + S24TILE(config, m_tile, 0, 0x3fff).set_palette(m_palette); + S24MIXER(config, m_mixer, 0); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) diff --git a/src/mame/drivers/segas24.cpp b/src/mame/drivers/segas24.cpp index 1ec64a35a26..01c55262261 100644 --- a/src/mame/drivers/segas24.cpp +++ b/src/mame/drivers/segas24.cpp @@ -1945,10 +1945,9 @@ MACHINE_CONFIG_START(segas24_state::system24) MCFG_TIMER_ADD_NONE("frc_timer") MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_frc", segas24_state, irq_frc_cb, attotime::from_hz(FRC_CLOCK_MODE1)) - MCFG_DEVICE_ADD("tile", S24TILE, 0, 0xfff) - MCFG_GFX_PALETTE("palette") - MCFG_DEVICE_ADD("sprite", S24SPRITE, 0) - MCFG_DEVICE_ADD("mixer", S24MIXER, 0) + S24TILE(config, m_vtile, 0, 0xfff).set_palette("palette"); + S24SPRITE(config, m_vsprite, 0); + S24MIXER(config, m_vmixer, 0); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) diff --git a/src/mame/drivers/seibuspi.cpp b/src/mame/drivers/seibuspi.cpp index 9290d6d2514..56476ebf8d8 100644 --- a/src/mame/drivers/seibuspi.cpp +++ b/src/mame/drivers/seibuspi.cpp @@ -1895,11 +1895,11 @@ MACHINE_CONFIG_START(seibuspi_state::spi) MCFG_PALETTE_ADD_INIT_BLACK("palette", 6144) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_DECRYPT_KEY_CB(WRITE16(*this, seibuspi_state, tile_decrypt_key_w)) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, seibuspi_state, spi_layer_enable_w)) - MCFG_SEIBU_CRTC_REG_1A_CB(WRITE16(*this, seibuspi_state, spi_layer_bank_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, seibuspi_state, scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.decrypt_key_callback().set(FUNC(seibuspi_state::tile_decrypt_key_w)); + crtc.layer_en_callback().set(FUNC(seibuspi_state::spi_layer_enable_w)); + crtc.reg_1a_callback().set(FUNC(seibuspi_state::spi_layer_bank_w)); + crtc.layer_scroll_callback().set(FUNC(seibuspi_state::scroll_w)); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -2021,11 +2021,11 @@ MACHINE_CONFIG_START(seibuspi_state::sys386i) MCFG_PALETTE_ADD_INIT_BLACK("palette", 6144) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_DECRYPT_KEY_CB(WRITE16(*this, seibuspi_state, tile_decrypt_key_w)) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, seibuspi_state, spi_layer_enable_w)) - MCFG_SEIBU_CRTC_REG_1A_CB(WRITE16(*this, seibuspi_state, spi_layer_bank_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, seibuspi_state, scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.decrypt_key_callback().set(FUNC(seibuspi_state::tile_decrypt_key_w)); + crtc.layer_en_callback().set(FUNC(seibuspi_state::spi_layer_enable_w)); + crtc.reg_1a_callback().set(FUNC(seibuspi_state::spi_layer_bank_w)); + crtc.layer_scroll_callback().set(FUNC(seibuspi_state::scroll_w)); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/seicupbl.cpp b/src/mame/drivers/seicupbl.cpp index fb4068e4ee9..aa48617d8f6 100644 --- a/src/mame/drivers/seicupbl.cpp +++ b/src/mame/drivers/seicupbl.cpp @@ -580,10 +580,10 @@ MACHINE_CONFIG_START(seicupbl_state::cupsocbl) MCFG_SCREEN_UPDATE_DRIVER(seicupbl_state, screen_update) MCFG_SCREEN_PALETTE("palette") - //MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - //MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, seicupbl_state, tilemap_enable_w)) - //MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, seicupbl_state, tile_scroll_w)) - //MCFG_SEIBU_CRTC_REG_1A_CB(WRITE16(*this, seicupbl_state, tile_vreg_1a_w)) + //seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + //crtc.layer_en_callback().set(FUNC(seicupbl_state::tilemap_enable_w)); + //crtc.layer_scroll_callback().set(FUNC(seicupbl_state::tile_scroll_w)); + //crtc.reg_1a_callback().set(FUNC(seicupbl_state::tile_vreg_1a_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_seicupbl_csb) diff --git a/src/mame/drivers/sengokmj.cpp b/src/mame/drivers/sengokmj.cpp index 69d4d740519..c19c8c990ed 100644 --- a/src/mame/drivers/sengokmj.cpp +++ b/src/mame/drivers/sengokmj.cpp @@ -599,9 +599,9 @@ MACHINE_CONFIG_START(sengokmj_state::sengokmj) MCFG_SCREEN_PALETTE("palette") MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, sengokmj_state, vblank_irq)) - MCFG_DEVICE_ADD("crtc", SEIBU_CRTC, 0) - MCFG_SEIBU_CRTC_LAYER_EN_CB(WRITE16(*this, sengokmj_state, layer_en_w)) - MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(WRITE16(*this, sengokmj_state, layer_scroll_w)) + seibu_crtc_device &crtc(SEIBU_CRTC(config, "crtc", 0)); + crtc.layer_en_callback().set(FUNC(sengokmj_state::layer_en_w)); + crtc.layer_scroll_callback().set(FUNC(sengokmj_state::layer_scroll_w)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_sengokmj) MCFG_PALETTE_ADD("palette", 0x800) diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp index d4b778bf03c..34c3fd92849 100644 --- a/src/mame/drivers/seta2.cpp +++ b/src/mame/drivers/seta2.cpp @@ -749,12 +749,6 @@ void seta2_state::telpacfl_map(address_map &map) // Touchscreen -#define MCFG_FUNCUBE_TOUCHSCREEN_ADD( _tag, _clock ) \ - MCFG_DEVICE_ADD( _tag, FUNCUBE_TOUCHSCREEN, _clock ) - -#define MCFG_FUNCUBE_TOUCHSCREEN_TX_CALLBACK(_devcb) \ - downcast(*device).set_tx_cb(DEVCB_##_devcb); - class funcube_touchscreen_device : public device_t, public device_serial_interface { @@ -762,7 +756,7 @@ public: funcube_touchscreen_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ioport_constructor device_input_ports() const override; - template devcb_base &set_tx_cb(Object &&cb) { return m_tx_cb.set_callback(std::forward(cb)); } + auto tx_cb() { return m_tx_cb.bind(); } protected: virtual void device_start() override; @@ -2801,8 +2795,7 @@ MACHINE_CONFIG_START(funcube_state::funcube) MCFG_MCF5206E_PERIPHERAL_ADD("maincpu_onboard") - MCFG_FUNCUBE_TOUCHSCREEN_ADD("touchscreen", 200) - MCFG_FUNCUBE_TOUCHSCREEN_TX_CALLBACK(WRITELINE(":sub:sci1", h8_sci_device, rx_w)) + FUNCUBE_TOUCHSCREEN(config, "touchscreen", 200).tx_cb().set(":sub:sci1", FUNC(h8_sci_device::rx_w)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/simpsons.cpp b/src/mame/drivers/simpsons.cpp index 0b0c9b90d88..8496dbcacf6 100644 --- a/src/mame/drivers/simpsons.cpp +++ b/src/mame/drivers/simpsons.cpp @@ -354,9 +354,9 @@ MACHINE_CONFIG_START(simpsons_state::simpsons) MCFG_PALETTE_ENABLE_HILIGHTS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(simpsons_state, tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette("palette"); + m_k052109->set_tile_callback(FUNC(simpsons_state::tile_callback), this); MCFG_DEVICE_ADD("k053246", K053246, 0) MCFG_K053246_CB(simpsons_state, sprite_callback) diff --git a/src/mame/drivers/spy.cpp b/src/mame/drivers/spy.cpp index 5b270dec439..20fbe9272d5 100644 --- a/src/mame/drivers/spy.cpp +++ b/src/mame/drivers/spy.cpp @@ -519,14 +519,14 @@ MACHINE_CONFIG_START(spy_state::spy) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(spy_state, tile_callback) - - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(spy_state, sprite_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(spy_state::tile_callback), this); + + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(spy_state::sprite_callback), this); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/surpratk.cpp b/src/mame/drivers/surpratk.cpp index 1dce1bae9e1..832ac4d77b8 100644 --- a/src/mame/drivers/surpratk.cpp +++ b/src/mame/drivers/surpratk.cpp @@ -193,16 +193,15 @@ MACHINE_CONFIG_START(surpratk_state::surpratk) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(surpratk_state, tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(surpratk_state::tile_callback), this); - MCFG_DEVICE_ADD("k053244", K053244, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(0, 0) - MCFG_K05324X_CB(surpratk_state, sprite_callback) + K053244(config, m_k053244, 0); + m_k053244->set_palette(m_palette); + m_k053244->set_sprite_callback(FUNC(surpratk_state::sprite_callback), this); - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/taito_b.cpp b/src/mame/drivers/taito_b.cpp index 12f0b85aa43..3482b979065 100644 --- a/src/mame/drivers/taito_b.cpp +++ b/src/mame/drivers/taito_b.cpp @@ -1762,14 +1762,14 @@ MACHINE_CONFIG_START(taitob_state::rastsag2) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x40) - MCFG_TC0180VCU_BG_COLORBASE(0xc0) - MCFG_TC0180VCU_FG_COLORBASE(0x80) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_2)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x40); + m_tc0180vcu->set_bg_colorbase(0xc0); + m_tc0180vcu->set_fg_colorbase(0x80); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_2, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1819,14 +1819,14 @@ MACHINE_CONFIG_START(taitob_state::masterw) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x10) - MCFG_TC0180VCU_BG_COLORBASE(0x30) - MCFG_TC0180VCU_FG_COLORBASE(0x20) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_5)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x10); + m_tc0180vcu->set_bg_colorbase(0x30); + m_tc0180vcu->set_fg_colorbase(0x20); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_5, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1897,14 +1897,14 @@ MACHINE_CONFIG_START(taitob_state::ashura) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x40) - MCFG_TC0180VCU_BG_COLORBASE(0xc0) - MCFG_TC0180VCU_FG_COLORBASE(0x80) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_2)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x40); + m_tc0180vcu->set_bg_colorbase(0xc0); + m_tc0180vcu->set_fg_colorbase(0x80); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_2, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1954,14 +1954,14 @@ MACHINE_CONFIG_START(taitob_state::crimec) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x80) - MCFG_TC0180VCU_BG_COLORBASE(0x00) - MCFG_TC0180VCU_FG_COLORBASE(0x40) - MCFG_TC0180VCU_TX_COLORBASE(0xc0) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_5)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_3)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x80); + m_tc0180vcu->set_bg_colorbase(0x00); + m_tc0180vcu->set_fg_colorbase(0x40); + m_tc0180vcu->set_tx_colorbase(0xc0); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_5, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_3, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2013,14 +2013,14 @@ MACHINE_CONFIG_START(taitob_state::hitice) MCFG_VIDEO_START_OVERRIDE(taitob_state,hitice) MCFG_VIDEO_RESET_OVERRIDE(taitob_state,hitice) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) // nominally "6.6 MHZ" - MCFG_TC0180VCU_FB_COLORBASE(0x40) - MCFG_TC0180VCU_BG_COLORBASE(0xc0) - MCFG_TC0180VCU_FG_COLORBASE(0x80) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_6)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); // nominally "6.6 MHZ" + m_tc0180vcu->set_fb_colorbase(0x40); + m_tc0180vcu->set_bg_colorbase(0xc0); + m_tc0180vcu->set_fg_colorbase(0x80); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_6, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2075,14 +2075,14 @@ MACHINE_CONFIG_START(taitob_state::rambo3p) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x40) - MCFG_TC0180VCU_BG_COLORBASE(0xc0) - MCFG_TC0180VCU_FG_COLORBASE(0x80) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_6)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_1)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x40); + m_tc0180vcu->set_bg_colorbase(0xc0); + m_tc0180vcu->set_fg_colorbase(0x80); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_6, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_1, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2133,14 +2133,14 @@ MACHINE_CONFIG_START(taitob_state::rambo3) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x10) - MCFG_TC0180VCU_BG_COLORBASE(0x30) - MCFG_TC0180VCU_FG_COLORBASE(0x20) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_6)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_1)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x10); + m_tc0180vcu->set_bg_colorbase(0x30); + m_tc0180vcu->set_fg_colorbase(0x20); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_6, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_1, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2196,14 +2196,14 @@ MACHINE_CONFIG_START(taitob_state::pbobble) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x80) - MCFG_TC0180VCU_BG_COLORBASE(0x00) - MCFG_TC0180VCU_FG_COLORBASE(0x40) - MCFG_TC0180VCU_TX_COLORBASE(0xc0) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_3)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_5)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x80); + m_tc0180vcu->set_bg_colorbase(0x00); + m_tc0180vcu->set_fg_colorbase(0x40); + m_tc0180vcu->set_tx_colorbase(0xc0); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_3, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_5, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2259,14 +2259,14 @@ MACHINE_CONFIG_START(taitob_state::spacedx) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x80) - MCFG_TC0180VCU_BG_COLORBASE(0x00) - MCFG_TC0180VCU_FG_COLORBASE(0x40) - MCFG_TC0180VCU_TX_COLORBASE(0xc0) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_3)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_5)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x80); + m_tc0180vcu->set_bg_colorbase(0x00); + m_tc0180vcu->set_fg_colorbase(0x40); + m_tc0180vcu->set_tx_colorbase(0xc0); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_3, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_5, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2316,14 +2316,14 @@ MACHINE_CONFIG_START(taitob_state::spacedxo) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x10) - MCFG_TC0180VCU_BG_COLORBASE(0x30) - MCFG_TC0180VCU_FG_COLORBASE(0x20) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_6)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x10); + m_tc0180vcu->set_bg_colorbase(0x30); + m_tc0180vcu->set_fg_colorbase(0x20); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_6, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2379,14 +2379,14 @@ MACHINE_CONFIG_START(taitob_state::qzshowby) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x80) - MCFG_TC0180VCU_BG_COLORBASE(0x00) - MCFG_TC0180VCU_FG_COLORBASE(0x40) - MCFG_TC0180VCU_TX_COLORBASE(0xc0) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_3)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_5)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x80); + m_tc0180vcu->set_bg_colorbase(0x00); + m_tc0180vcu->set_fg_colorbase(0x40); + m_tc0180vcu->set_tx_colorbase(0xc0); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_3, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_5, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2436,14 +2436,14 @@ MACHINE_CONFIG_START(taitob_state::viofight) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x10) - MCFG_TC0180VCU_BG_COLORBASE(0x30) - MCFG_TC0180VCU_FG_COLORBASE(0x20) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_1)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x10); + m_tc0180vcu->set_bg_colorbase(0x30); + m_tc0180vcu->set_fg_colorbase(0x20); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_1, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2498,14 +2498,14 @@ MACHINE_CONFIG_START(taitob_state::silentd) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x10) - MCFG_TC0180VCU_BG_COLORBASE(0x30) - MCFG_TC0180VCU_FG_COLORBASE(0x20) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_6)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x10); + m_tc0180vcu->set_bg_colorbase(0x30); + m_tc0180vcu->set_fg_colorbase(0x20); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_6, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2555,14 +2555,14 @@ MACHINE_CONFIG_START(taitob_state::selfeena) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x10) - MCFG_TC0180VCU_BG_COLORBASE(0x30) - MCFG_TC0180VCU_FG_COLORBASE(0x20) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_6)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x10); + m_tc0180vcu->set_bg_colorbase(0x30); + m_tc0180vcu->set_fg_colorbase(0x20); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_6, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2621,14 +2621,14 @@ MACHINE_CONFIG_START(taitob_state::ryujin) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x10) - MCFG_TC0180VCU_BG_COLORBASE(0x30) - MCFG_TC0180VCU_FG_COLORBASE(0x20) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_6)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x10); + m_tc0180vcu->set_bg_colorbase(0x30); + m_tc0180vcu->set_fg_colorbase(0x20); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_6, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2685,14 +2685,14 @@ MACHINE_CONFIG_START(taitob_state::sbm) MCFG_VIDEO_START_OVERRIDE(taitob_state,taitob_core) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x40) - MCFG_TC0180VCU_BG_COLORBASE(0xc0) - MCFG_TC0180VCU_FG_COLORBASE(0x80) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_4)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_5)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x40); + m_tc0180vcu->set_bg_colorbase(0xc0); + m_tc0180vcu->set_fg_colorbase(0x80); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_4, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_5, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2743,14 +2743,14 @@ MACHINE_CONFIG_START(taitob_c_state::realpunc) MCFG_HD63484_ADD("hd63484", 0, realpunc_hd63484_map) MCFG_HD63484_AUTO_CONFIGURE_SCREEN(false) - MCFG_DEVICE_ADD("tc0180vcu", TC0180VCU, 27.164_MHz_XTAL / 4) - MCFG_TC0180VCU_FB_COLORBASE(0x40) - MCFG_TC0180VCU_BG_COLORBASE(0xc0) - MCFG_TC0180VCU_FG_COLORBASE(0x80) - MCFG_TC0180VCU_TX_COLORBASE(0x00) - MCFG_GFX_PALETTE("palette") - MCFG_TC0180VCU_INTH_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_2)) - MCFG_TC0180VCU_INTL_CALLBACK(HOLDLINE("maincpu", M68K_IRQ_3)) + TC0180VCU(config, m_tc0180vcu, 27.164_MHz_XTAL / 4); + m_tc0180vcu->set_fb_colorbase(0x40); + m_tc0180vcu->set_bg_colorbase(0xc0); + m_tc0180vcu->set_fg_colorbase(0x80); + m_tc0180vcu->set_tx_colorbase(0x00); + m_tc0180vcu->set_palette(m_palette); + m_tc0180vcu->inth_callback().set_inputline(m_maincpu, M68K_IRQ_2, HOLD_LINE); + m_tc0180vcu->intl_callback().set_inputline(m_maincpu, M68K_IRQ_3, HOLD_LINE); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/thunderx.cpp b/src/mame/drivers/thunderx.cpp index a9fe79af424..952a598388c 100644 --- a/src/mame/drivers/thunderx.cpp +++ b/src/mame/drivers/thunderx.cpp @@ -665,14 +665,14 @@ MACHINE_CONFIG_START(thunderx_state::scontra) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(thunderx_state, tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(thunderx_state::tile_callback), this); - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(thunderx_state, sprite_callback) + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(thunderx_state::sprite_callback), this); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -718,8 +718,7 @@ MACHINE_CONFIG_START(thunderx_state::gbusters) MCFG_DEVICE_PROGRAM_MAP(gbusters_map) MCFG_KONAMICPU_LINE_CB(WRITE8(*this, thunderx_state, banking_callback)) - MCFG_DEVICE_MODIFY("k052109") - MCFG_K052109_CB(thunderx_state, gbusters_tile_callback) + m_k052109->set_tile_callback(FUNC(thunderx_state::gbusters_tile_callback), this); MACHINE_CONFIG_END diff --git a/src/mame/drivers/tmnt.cpp b/src/mame/drivers/tmnt.cpp index 4d9b13fdfda..f38b62c01a0 100644 --- a/src/mame/drivers/tmnt.cpp +++ b/src/mame/drivers/tmnt.cpp @@ -1947,15 +1947,15 @@ MACHINE_CONFIG_START(tmnt_state::cuebrick) MCFG_VIDEO_START_OVERRIDE(tmnt_state,cuebrick) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, cuebrick_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::cuebrick_tile_callback), this); - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(tmnt_state, mia_sprite_callback) - MCFG_K051960_PLANEORDER(K051960_PLANEORDER_MIA) + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback), this); + m_k051960->set_plane_order(K051960_PLANEORDER_MIA); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -1999,15 +1999,15 @@ MACHINE_CONFIG_START(tmnt_state::mia) MCFG_VIDEO_START_OVERRIDE(tmnt_state,mia) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, mia_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::mia_tile_callback), this); - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(tmnt_state, mia_sprite_callback) - MCFG_K051960_PLANEORDER(K051960_PLANEORDER_MIA) + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(tmnt_state::mia_sprite_callback), this); + m_k051960->set_plane_order(K051960_PLANEORDER_MIA); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2063,15 +2063,15 @@ MACHINE_CONFIG_START(tmnt_state::tmnt) MCFG_VIDEO_START_OVERRIDE(tmnt_state,tmnt) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, tmnt_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this); - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(tmnt_state, tmnt_sprite_callback) - MCFG_K051960_PLANEORDER(K051960_PLANEORDER_MIA) + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(tmnt_state::tmnt_sprite_callback), this); + m_k051960->set_plane_order(K051960_PLANEORDER_MIA); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2126,16 +2126,16 @@ MACHINE_CONFIG_START(tmnt_state::punkshot) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_ENABLE_HILIGHTS() - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, tmnt_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this); - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(tmnt_state, punkshot_sprite_callback) + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(tmnt_state::punkshot_sprite_callback), this); - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -2179,16 +2179,15 @@ MACHINE_CONFIG_START(tmnt_state::lgtnfght) MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, tmnt_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this); - MCFG_DEVICE_ADD("k053245", K053245, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(0, 0) - MCFG_K05324X_CB(tmnt_state, lgtnfght_sprite_callback) + K053245(config, m_k053245, 0); + m_k053245->set_palette(m_palette); + m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this); - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -2238,17 +2237,17 @@ MACHINE_CONFIG_START(tmnt_state::blswhstl) MCFG_VIDEO_START_OVERRIDE(tmnt_state, blswhstl ) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, blswhstl_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::blswhstl_tile_callback), this); - MCFG_DEVICE_ADD("k053245", K053245, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(0, 0) - MCFG_K05324X_CB(tmnt_state, blswhstl_sprite_callback) + K053245(config, m_k053245, 0); + m_k053245->set_palette(m_palette); + m_k053245->set_sprite_callback(FUNC(tmnt_state::blswhstl_sprite_callback), this); - MCFG_K053251_ADD("k053251") - MCFG_K054000_ADD("k054000") + K053251(config, m_k053251, 0); + + K054000(config, m_k054000, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -2314,20 +2313,19 @@ MACHINE_CONFIG_START(tmnt_state::glfgreat) MCFG_VIDEO_START_OVERRIDE(tmnt_state,glfgreat) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, tmnt_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this); - MCFG_DEVICE_ADD("k053245", K053245, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(0, 0) - MCFG_K05324X_CB(tmnt_state, lgtnfght_sprite_callback) + K053245(config, m_k053245, 0); + m_k053245->set_palette(m_palette); + m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this); MCFG_DEVICE_ADD("k053936", K053936, 0) MCFG_K053936_WRAP(1) MCFG_K053936_OFFSETS(85, 0) - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -2383,19 +2381,18 @@ MACHINE_CONFIG_START(tmnt_state::prmrsocr) MCFG_VIDEO_START_OVERRIDE(tmnt_state,prmrsocr) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, tmnt_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this); - MCFG_DEVICE_ADD("k053245", K053245, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(0, 0) - MCFG_K05324X_CB(tmnt_state, prmrsocr_sprite_callback) + K053245(config, m_k053245, 0); + m_k053245->set_palette(m_palette); + m_k053245->set_sprite_callback(FUNC(tmnt_state::prmrsocr_sprite_callback), this); MCFG_DEVICE_ADD("k053936", K053936, 0) MCFG_K053936_OFFSETS(85, 1) - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -2451,16 +2448,15 @@ MACHINE_CONFIG_START(tmnt_state::tmnt2) MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, tmnt_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this); - MCFG_DEVICE_ADD("k053245", K053245, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(0, 0) - MCFG_K05324X_CB(tmnt_state, lgtnfght_sprite_callback) + K053245(config, m_k053245, 0); + m_k053245->set_palette(m_palette); + m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this); - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -2509,16 +2505,15 @@ MACHINE_CONFIG_START(tmnt_state::ssriders) MCFG_VIDEO_START_OVERRIDE(tmnt_state,lgtnfght) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, tmnt_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this); - MCFG_DEVICE_ADD("k053245", K053245, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(0, 0) - MCFG_K05324X_CB(tmnt_state, lgtnfght_sprite_callback) + K053245(config, m_k053245, 0); + m_k053245->set_palette(m_palette); + m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this); - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -2559,16 +2554,15 @@ MACHINE_CONFIG_START(tmnt_state::sunsetbl) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_ENABLE_HILIGHTS() - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, ssbl_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::ssbl_tile_callback), this); - MCFG_DEVICE_ADD("k053245", K053245, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K05324X_OFFSETS(0, 0) - MCFG_K05324X_CB(tmnt_state, lgtnfght_sprite_callback) + K053245(config, m_k053245, 0); + m_k053245->set_palette(m_palette); + m_k053245->set_sprite_callback(FUNC(tmnt_state::lgtnfght_sprite_callback), this); - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -2609,18 +2603,18 @@ MACHINE_CONFIG_START(tmnt_state::thndrx2) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_ENABLE_HILIGHTS() - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(tmnt_state, tmnt_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(tmnt_state::tmnt_tile_callback), this); - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(tmnt_state, thndrx2_sprite_callback) + K051960(config, m_k051960, 0); + m_k051960->set_palette(m_palette); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(tmnt_state::thndrx2_sprite_callback), this); - MCFG_K053251_ADD("k053251") + K053251(config, m_k053251, 0); - MCFG_K054000_ADD("k054000") + K054000(config, m_k054000, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/tourtabl.cpp b/src/mame/drivers/tourtabl.cpp index ba9914a0fd4..d49e499cfca 100644 --- a/src/mame/drivers/tourtabl.cpp +++ b/src/mame/drivers/tourtabl.cpp @@ -173,9 +173,9 @@ MACHINE_CONFIG_START(tourtabl_state::tourtabl) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_DEVICE_ADD("tia_video", TIA_NTSC_VIDEO, 0, "tia") - MCFG_TIA_READ_INPUT_PORT_CB(READ16(*this, tourtabl_state, tourtabl_read_input_port)) - MCFG_TIA_DATABUS_CONTENTS_CB(READ8(*this, tourtabl_state, tourtabl_get_databus_contents)) + tia_ntsc_video_device &tia(TIA_NTSC_VIDEO(config, "tia_video", 0, "tia")); + tia.read_input_port_callback().set(FUNC(tourtabl_state::tourtabl_read_input_port)); + tia.databus_contents_callback().set(FUNC(tourtabl_state::tourtabl_get_databus_contents)); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS( MASTER_CLOCK, 228, 34, 34 + 160, 262, 46, 46 + 200 ) diff --git a/src/mame/drivers/tvboy.cpp b/src/mame/drivers/tvboy.cpp index 1a37960360e..514743d235b 100644 --- a/src/mame/drivers/tvboy.cpp +++ b/src/mame/drivers/tvboy.cpp @@ -83,10 +83,10 @@ MACHINE_CONFIG_START(tvboy_state::tvboyii) MCFG_M6502_DISABLE_CACHE() /* video hardware */ - MCFG_DEVICE_ADD("tia_video", TIA_PAL_VIDEO, 0, "tia") - MCFG_TIA_READ_INPUT_PORT_CB(READ16(*this, tvboy_state, a2600_read_input_port)) - MCFG_TIA_DATABUS_CONTENTS_CB(READ8(*this, tvboy_state, a2600_get_databus_contents)) - MCFG_TIA_VSYNC_CB(WRITE16(*this, tvboy_state, a2600_tia_vsync_callback_pal)) + TIA_PAL_VIDEO(config, m_tia, 0, "tia"); + m_tia->read_input_port_callback().set(FUNC(tvboy_state::a2600_read_input_port)); + m_tia->databus_contents_callback().set(FUNC(tvboy_state::a2600_get_databus_contents)); + m_tia->vsync_callback().set(FUNC(tvboy_state::a2600_tia_vsync_callback_pal)); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS( MASTER_CLOCK_PAL, 228, 26, 26 + 160 + 16, 312, 32, 32 + 228 + 31 ) diff --git a/src/mame/drivers/ultraman.cpp b/src/mame/drivers/ultraman.cpp index 2445bc0f559..fd537e97f71 100644 --- a/src/mame/drivers/ultraman.cpp +++ b/src/mame/drivers/ultraman.cpp @@ -204,10 +204,10 @@ MACHINE_CONFIG_START(ultraman_state::ultraman) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_PALETTE_ENABLE_SHADOWS() - MCFG_DEVICE_ADD("k051960", K051960, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K051960_SCREEN_TAG("screen") - MCFG_K051960_CB(ultraman_state, sprite_callback) + K051960(config, m_k051960, 0); + m_k051960->set_palette("palette"); + m_k051960->set_screen_tag("screen"); + m_k051960->set_sprite_callback(FUNC(ultraman_state::sprite_callback), this); MCFG_DEVICE_ADD("k051316_1", K051316, 0) MCFG_GFX_PALETTE("palette") diff --git a/src/mame/drivers/vendetta.cpp b/src/mame/drivers/vendetta.cpp index 5f4fadc2f93..dce644566f0 100644 --- a/src/mame/drivers/vendetta.cpp +++ b/src/mame/drivers/vendetta.cpp @@ -459,9 +459,9 @@ MACHINE_CONFIG_START(vendetta_state::vendetta) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(vendetta_state, vendetta_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(vendetta_state::vendetta_tile_callback), this); MCFG_DEVICE_ADD("k053246", K053246, 0) MCFG_K053246_CB(vendetta_state, sprite_callback) @@ -498,9 +498,9 @@ MACHINE_CONFIG_START(vendetta_state::esckids) MCFG_DEVICE_REMOVE("k054000") MCFG_DEVICE_REMOVE("k052109") - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(vendetta_state, esckids_tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(vendetta_state::esckids_tile_callback), this); MCFG_DEVICE_MODIFY("k053246") MCFG_K053246_CONFIG("gfx2", NORMAL_PLANE_ORDER, 101, 6) diff --git a/src/mame/drivers/vidbrain.cpp b/src/mame/drivers/vidbrain.cpp index 9553dff1569..c01f6bb696a 100644 --- a/src/mame/drivers/vidbrain.cpp +++ b/src/mame/drivers/vidbrain.cpp @@ -408,11 +408,11 @@ MACHINE_CONFIG_START(vidbrain_state::vidbrain) MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) MCFG_SCREEN_UPDATE_DEVICE(UV201_TAG, uv201_device, screen_update) MCFG_SCREEN_RAW_PARAMS(3636363, 232, 18, 232, 262, 21, 262) - MCFG_DEVICE_ADD(UV201_TAG, UV201, 3636363) - MCFG_VIDEO_SET_SCREEN(SCREEN_TAG) - MCFG_UV201_EXT_INT_CALLBACK(WRITELINE(*this, vidbrain_state, ext_int_w)) - MCFG_UV201_HBLANK_CALLBACK(WRITELINE(*this, vidbrain_state, hblank_w)) - MCFG_UV201_DB_CALLBACK(READ8(*this, vidbrain_state, memory_read_byte)) + UV201(config, m_uv, 3636363); + m_uv->set_screen(SCREEN_TAG); + m_uv->ext_int_wr_callback().set(FUNC(vidbrain_state::ext_int_w)); + m_uv->hblank_wr_callback().set(FUNC(vidbrain_state::hblank_w)); + m_uv->db_rd_callback().set(FUNC(vidbrain_state::memory_read_byte)); // sound hardware SPEAKER(config, "speaker").front_center(); diff --git a/src/mame/drivers/vt100.cpp b/src/mame/drivers/vt100.cpp index d3f9a2b9e1f..11ee97e72ff 100644 --- a/src/mame/drivers/vt100.cpp +++ b/src/mame/drivers/vt100.cpp @@ -330,13 +330,13 @@ MACHINE_CONFIG_START(vt100_state::vt100) config.set_default_layout(layout_vt100); - MCFG_DEVICE_ADD("vt100_video", VT100_VIDEO, XTAL(24'073'400)) - MCFG_VT_SET_SCREEN("screen") - MCFG_VT_CHARGEN("chargen") - MCFG_VT_VIDEO_RAM_CALLBACK(READ8(*this, vt100_state, video_ram_r)) - MCFG_VT_VIDEO_VERT_FREQ_INTR_CALLBACK(WRITELINE("rstbuf", rst_pos_buffer_device, rst4_w)) - MCFG_VT_VIDEO_LBA3_LBA4_CALLBACK(WRITE8(*this, vt100_state, uart_clock_w)) - MCFG_VT_VIDEO_LBA7_CALLBACK(WRITELINE("nvr", er1400_device, clock_w)) + VT100_VIDEO(config, m_crtc, XTAL(24'073'400)); + m_crtc->set_screen("screen"); + m_crtc->set_chargen("chargen"); + m_crtc->ram_rd_callback().set(FUNC(vt100_state::video_ram_r)); + m_crtc->vert_freq_intr_wr_callback().set(m_rstbuf, FUNC(rst_pos_buffer_device::rst4_w)); + m_crtc->lba3_lba4_wr_callback().set(FUNC(vt100_state::uart_clock_w)); + m_crtc->lba7_wr_callback().set(m_nvr, FUNC(er1400_device::clock_w)); I8251(config, m_pusart, XTAL(24'883'200) / 9); m_pusart->txd_handler().set(m_rs232, FUNC(rs232_port_device::write_txd)); diff --git a/src/mame/drivers/wpc_95.cpp b/src/mame/drivers/wpc_95.cpp index 10c949b0d37..5324a50347f 100644 --- a/src/mame/drivers/wpc_95.cpp +++ b/src/mame/drivers/wpc_95.cpp @@ -2260,8 +2260,7 @@ MACHINE_CONFIG_START(wpc_95_state::wpc_95) MCFG_DEVICE_ADD("lamp", WPC_LAMP, 0) MCFG_DEVICE_ADD("out", WPC_OUT, 0, 3) MCFG_DEVICE_ADD("shift", WPC_SHIFT, 0) - MCFG_DEVICE_ADD("dmd", WPC_DMD, 0) - MCFG_WPC_DMD_SCANLINE_CALLBACK(WRITELINE(*this, wpc_95_state, scanline_irq)) + WPC_DMD(config, "dmd", 0).scanline_callback().set(FUNC(wpc_95_state::scanline_irq)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MCFG_DEVICE_ADD("dcs", DCS_AUDIO_WPC, 0) diff --git a/src/mame/drivers/wpc_dcs.cpp b/src/mame/drivers/wpc_dcs.cpp index 0a3f927b2e6..206bac9dc7a 100644 --- a/src/mame/drivers/wpc_dcs.cpp +++ b/src/mame/drivers/wpc_dcs.cpp @@ -435,8 +435,7 @@ MACHINE_CONFIG_START(wpc_dcs_state::wpc_dcs) MCFG_DEVICE_ADD("lamp", WPC_LAMP, 0) MCFG_DEVICE_ADD("out", WPC_OUT, 0, 3) MCFG_DEVICE_ADD("shift", WPC_SHIFT, 0) - MCFG_DEVICE_ADD("dmd", WPC_DMD, 0) - MCFG_WPC_DMD_SCANLINE_CALLBACK(WRITELINE(*this, wpc_dcs_state, scanline_irq)) + WPC_DMD(config, "dmd", 0).scanline_callback().set(FUNC(wpc_dcs_state::scanline_irq)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MCFG_DEVICE_ADD("dcs", DCS_AUDIO_8K, 0) diff --git a/src/mame/drivers/wpc_s.cpp b/src/mame/drivers/wpc_s.cpp index 24b754c81e6..4ab976af276 100644 --- a/src/mame/drivers/wpc_s.cpp +++ b/src/mame/drivers/wpc_s.cpp @@ -1982,8 +1982,7 @@ MACHINE_CONFIG_START(wpc_s_state::wpc_s) MCFG_DEVICE_ADD("pic", WPC_PIC, 0) MCFG_DEVICE_ADD("lamp", WPC_LAMP, 0) MCFG_DEVICE_ADD("out", WPC_OUT, 0, 5) - MCFG_DEVICE_ADD("dmd", WPC_DMD, 0) - MCFG_WPC_DMD_SCANLINE_CALLBACK(WRITELINE(*this, wpc_s_state, scanline_irq)) + WPC_DMD(config, "dmd", 0).scanline_callback().set(FUNC(wpc_s_state::scanline_irq)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MCFG_DEVICE_ADD("dcs", DCS_AUDIO_8K, 0) diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp index 845494a2321..5f1b2c773e8 100644 --- a/src/mame/drivers/xexex.cpp +++ b/src/mame/drivers/xexex.cpp @@ -514,7 +514,7 @@ MACHINE_CONFIG_START(xexex_state::xexex) MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4) - MCFG_DEVICE_ADD("k054338", K054338, 0) + K054338(config, m_k054338, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp index 3b44b500b91..4eea67c0a41 100644 --- a/src/mame/drivers/xmen.cpp +++ b/src/mame/drivers/xmen.cpp @@ -325,9 +325,9 @@ MACHINE_CONFIG_START(xmen_state::xmen) MCFG_PALETTE_ENABLE_SHADOWS() MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(xmen_state, tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette("palette"); + m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback), this); MCFG_DEVICE_ADD("k053246", K053246, 0) MCFG_K053246_CB(xmen_state, sprite_callback) @@ -388,9 +388,9 @@ MACHINE_CONFIG_START(xmen_state::xmen6p) MCFG_VIDEO_START_OVERRIDE(xmen_state,xmen6p) - MCFG_DEVICE_ADD("k052109", K052109, 0) - MCFG_GFX_PALETTE("palette") - MCFG_K052109_CB(xmen_state, tile_callback) + K052109(config, m_k052109, 0); + m_k052109->set_palette("palette"); + m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback), this); MCFG_DEVICE_ADD("k053246", K053246, 0) MCFG_K053246_CB(xmen_state, sprite_callback) diff --git a/src/mame/video/911_vdt.h b/src/mame/video/911_vdt.h index e557e7fe801..70a762c162c 100644 --- a/src/mame/video/911_vdt.h +++ b/src/mame/video/911_vdt.h @@ -50,16 +50,6 @@ public: DECLARE_READ8_MEMBER(cru_r); DECLARE_WRITE8_MEMBER(cru_w); - template devcb_base &set_keyint_callback(Object &&cb) - { - return m_keyint_line.set_callback(std::forward(cb)); - } - - template devcb_base &set_lineint_callback(Object &&cb) - { - return m_lineint_line.set_callback(std::forward(cb)); - } - auto keyint_cb() { return m_keyint_line.bind(); } auto lineint_cb() { return m_lineint_line.bind(); } diff --git a/src/mame/video/dynax_blitter_rev2.h b/src/mame/video/dynax_blitter_rev2.h index a28f2fb8f8a..38b8e8f55eb 100644 --- a/src/mame/video/dynax_blitter_rev2.h +++ b/src/mame/video/dynax_blitter_rev2.h @@ -11,30 +11,6 @@ #pragma once -//************************************************************************** -// CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_DYNAX_BLITTER_REV2_VRAM_OUT_CB(_devcb) \ - downcast(*device).set_vram_out_cb(DEVCB_##_devcb); -#define MCFG_DYNAX_BLITTER_REV2_SCROLLX_CB(_devcb) \ - downcast(*device).set_scrollx_cb(DEVCB_##_devcb); -#define MCFG_DYNAX_BLITTER_REV2_SCROLLY_CB(_devcb) \ - downcast(*device).set_scrolly_cb(DEVCB_##_devcb); -#define MCFG_DYNAX_BLITTER_REV2_READY_CB(_devcb) \ - downcast(*device).set_ready_cb(DEVCB_##_devcb); - -#define MCFG_CDRACULA_BLITTER_VRAM_OUT_CB(_devcb) \ - downcast(*device).set_vram_out_cb(DEVCB_##_devcb); -#define MCFG_CDRACULA_BLITTER_SCROLLX_CB(_devcb) \ - downcast(*device).set_scrollx_cb(DEVCB_##_devcb); -#define MCFG_CDRACULA_BLITTER_SCROLLY_CB(_devcb) \ - downcast(*device).set_scrolly_cb(DEVCB_##_devcb); -#define MCFG_CDRACULA_BLITTER_READY_CB(_devcb) \ - downcast(*device).set_ready_cb(DEVCB_##_devcb); -#define MCFG_CDRACULA_BLITTER_DEST_CB(_devcb) \ - downcast(*device).set_blit_dest_cb(DEVCB_##_devcb); - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -48,10 +24,6 @@ public: dynax_blitter_rev2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // static configuration - template devcb_base &set_vram_out_cb(Object &&cb) { return m_vram_out_cb.set_callback(std::forward(cb)); } - template devcb_base &set_scrollx_cb(Object &&cb) { return m_scrollx_cb.set_callback(std::forward(cb)); } - template devcb_base &set_scrolly_cb(Object &&cb) { return m_scrolly_cb.set_callback(std::forward(cb)); } - template devcb_base &set_ready_cb(Object &&cb) { return m_ready_cb.set_callback(std::forward(cb)); } auto vram_out_cb() { return m_vram_out_cb.bind(); } auto scrollx_cb() { return m_scrollx_cb.bind(); } auto scrolly_cb() { return m_scrolly_cb.bind(); } @@ -104,7 +76,7 @@ public: // construction/destruction cdracula_blitter_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - template devcb_base &set_blit_dest_cb(Object &&cb) { return m_blit_dest_cb.set_callback(std::forward(cb)); } + auto blit_dest_cb() { return m_blit_dest_cb.bind(); } // write handlers DECLARE_WRITE8_MEMBER(flags_w); diff --git a/src/mame/video/gime.h b/src/mame/video/gime.h index 3ecf1aa3e7e..89f692f7254 100644 --- a/src/mame/video/gime.h +++ b/src/mame/video/gime.h @@ -19,24 +19,6 @@ #include "machine/ram.h" -//************************************************************************** -// GIME CONFIG/INTERFACE -//************************************************************************** - -#define MCFG_GIME_HSYNC_CALLBACK MCFG_MC6847_HSYNC_CALLBACK - -#define MCFG_GIME_FSYNC_CALLBACK MCFG_MC6847_FSYNC_CALLBACK - -#define MCFG_GIME_IRQ_CALLBACK(_write) \ - downcast(*device).set_irq_wr_callback(DEVCB_##_write); - -#define MCFG_GIME_FIRQ_CALLBACK(_write) \ - downcast(*device).set_firq_wr_callback(DEVCB_##_write); - -#define MCFG_GIME_FLOATING_BUS_CALLBACK(_read) \ - downcast(*device).set_floating_bus_rd_callback(DEVCB_##_read); - - //************************************************************************** // GIME CORE //************************************************************************** @@ -46,9 +28,9 @@ class cococart_slot_device; class gime_device : public mc6847_friend_device, public sam6883_friend_device_interface { public: - template devcb_base &set_irq_wr_callback(Object &&cb) { return m_write_irq.set_callback(std::forward(cb)); } - template devcb_base &set_firq_wr_callback(Object &&cb) { return m_write_firq.set_callback(std::forward(cb)); } - template devcb_base &set_floating_bus_rd_callback(Object &&cb) { return m_read_floating_bus.set_callback(std::forward(cb)); } + auto irq_wr_callback() { return m_write_irq.bind(); } + auto firq_wr_callback() { return m_write_firq.bind(); } + auto floating_bus_rd_callback() { return m_read_floating_bus.bind(); } // read/write DECLARE_READ8_MEMBER( bus_r ) { return read(offset); } diff --git a/src/mame/video/gtia.h b/src/mame/video/gtia.h index 2d01f47bfbf..72300edafe8 100644 --- a/src/mame/video/gtia.h +++ b/src/mame/video/gtia.h @@ -16,15 +16,6 @@ #pragma once -#define MCFG_GTIA_READ_CB(_devcb) \ - downcast(*device).set_read_callback(DEVCB_##_devcb); - -#define MCFG_GTIA_WRITE_CB(_devcb) \ - downcast(*device).set_write_callback(DEVCB_##_devcb); - -#define MCFG_GTIA_REGION(region) \ - downcast(*device).set_region(region); - // ======================> gtia_device enum gtia_region : unsigned @@ -40,8 +31,8 @@ public: gtia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void set_region(gtia_region region) { m_region = region; } - template devcb_base &set_read_callback(Object &&cb) { return m_read_cb.set_callback(std::forward(cb)); } - template devcb_base &set_write_callback(Object &&cb) { return m_write_cb.set_callback(std::forward(cb)); } + auto read_callback() { return m_read_cb.bind(); } + auto write_callback() { return m_write_cb.bind(); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); diff --git a/src/mame/video/igs017_igs031.h b/src/mame/video/igs017_igs031.h index 5ed156ad471..67554c12051 100644 --- a/src/mame/video/igs017_igs031.h +++ b/src/mame/video/igs017_igs031.h @@ -10,12 +10,6 @@ typedef device_delegate igs017_igs031_palette_scramble_delegate; -#define MCFG_IGS017_IGS031_PALETTE_SCRAMBLE_CB( _class, _method) \ - downcast(*device).set_palette_scramble_cb(igs017_igs031_palette_scramble_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); - -#define MCFG_IGS017_IGS031_REVERSE_TEXT_BITS \ - downcast(*device).set_text_reverse_bits(); - class igs017_igs031_device : public device_t, public device_gfx_interface, public device_video_interface, @@ -24,7 +18,7 @@ class igs017_igs031_device : public device_t, public: igs017_igs031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_palette_scramble_cb(Object &&cb) { m_palette_scramble_cb = std::forward(cb); } + template void set_palette_scramble_cb(T &&... args) { m_palette_scramble_cb = igs017_igs031_palette_scramble_delegate(std::forward(args)...); } void set_text_reverse_bits() { diff --git a/src/mame/video/k051960.h b/src/mame/video/k051960.h index a5c523fcab7..5ac4332999e 100644 --- a/src/mame/video/k051960.h +++ b/src/mame/video/k051960.h @@ -18,24 +18,6 @@ enum typedef device_delegate k051960_cb_delegate; #define K051960_CB_MEMBER(_name) void _name(int *code, int *color, int *priority, int *shadow) -#define MCFG_K051960_CB(_class, _method) \ - downcast(*device).set_k051960_callback(k051960_cb_delegate(&_class::_method, #_class "::" #_method, this)); - -#define MCFG_K051960_PLANEORDER(_order) \ - downcast(*device).set_plane_order(_order); - -#define MCFG_K051960_SCREEN_TAG(_tag) \ - downcast(*device).set_screen_tag(_tag); - -#define MCFG_K051960_IRQ_HANDLER(_devcb) \ - downcast(*device).set_irq_handler(DEVCB_##_devcb); - -#define MCFG_K051960_NMI_HANDLER(_devcb) \ - downcast(*device).set_nmi_handler(DEVCB_##_devcb); - -#define MCFG_K051960_VREG_CONTRAST_HANDLER(_devcb) \ - downcast(*device).set_vreg_contrast_handler(DEVCB_##_devcb); - class k051960_device : public device_t, public device_gfx_interface { @@ -49,20 +31,17 @@ class k051960_device : public device_t, public device_gfx_interface public: k051960_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_irq_handler(Object &&cb) - { return m_irq_handler.set_callback(std::forward(cb)); } + auto irq_handler() { return m_irq_handler.bind(); } - template devcb_base &set_nmi_handler(Object &&cb) - { return m_nmi_handler.set_callback(std::forward(cb)); } + auto nmi_handler() { return m_nmi_handler.bind(); } - template devcb_base &set_vreg_contrast_handler(Object &&cb) - { return m_vreg_contrast_handler.set_callback(std::forward(cb)); } + auto vreg_contrast_handler() { return m_vreg_contrast_handler.bind(); } // static configuration - void set_k051960_callback(k051960_cb_delegate callback) { m_k051960_cb = callback; } + template void set_sprite_callback(T &&... args) { m_k051960_cb = k051960_cb_delegate(std::forward(args)...); } void set_plane_order(int order); - void set_screen_tag(const char *tag) { m_screen.set_tag(tag); } + template void set_screen_tag(T &&tag) { m_screen.set_tag(std::forward(tag)); } /* The callback is passed: diff --git a/src/mame/video/k052109.cpp b/src/mame/video/k052109.cpp index 5c403e02031..1ef6ba63e95 100644 --- a/src/mame/video/k052109.cpp +++ b/src/mame/video/k052109.cpp @@ -188,7 +188,7 @@ k052109_device::k052109_device(const machine_config &mconfig, const char *tag, d } -void k052109_device::set_ram(bool ram) +void k052109_device::set_char_ram(bool ram) { if (ram) set_info(gfxinfo_ram); diff --git a/src/mame/video/k052109.h b/src/mame/video/k052109.h index eb2b9240159..6b31307419e 100644 --- a/src/mame/video/k052109.h +++ b/src/mame/video/k052109.h @@ -10,18 +10,6 @@ typedef device_delegate k052109_cb_delegate; #define K052109_CB_MEMBER(_name) void _name(int layer, int bank, int *code, int *color, int *flags, int *priority) -#define MCFG_K052109_CB(_class, _method) \ - downcast(*device).set_k052109_callback(k052109_cb_delegate(&_class::_method, #_class "::" #_method, this)); - -#define MCFG_K052109_CHARRAM(_ram) \ - downcast(*device).set_ram(_ram); - -#define MCFG_K052109_SCREEN_TAG(_tag) \ - downcast(*device).set_screen_tag(_tag); - -#define MCFG_K052109_IRQ_HANDLER(_devcb) \ - downcast(*device).set_irq_handler(DEVCB_##_devcb); - class k052109_device : public device_t, public device_gfx_interface { @@ -34,12 +22,10 @@ public: k052109_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~k052109_device() {} - template devcb_base &set_irq_handler(Object &&cb) - { return m_irq_handler.set_callback(std::forward(cb)); } - - void set_k052109_callback(k052109_cb_delegate callback) { m_k052109_cb = callback; } - void set_ram(bool ram); - void set_screen_tag(const char *tag) { m_screen.set_tag(tag); } + auto irq_handler() { return m_irq_handler.bind(); } + template void set_tile_callback(T &&... args) { m_k052109_cb = k052109_cb_delegate(std::forward(args)...); } + void set_char_ram(bool ram); + template void set_screen_tag(T &&tag) { m_screen.set_tag(std::forward(tag)); } /* The callback is passed: diff --git a/src/mame/video/k053244_k053245.h b/src/mame/video/k053244_k053245.h index 2af1a3a9607..859bc5409d9 100644 --- a/src/mame/video/k053244_k053245.h +++ b/src/mame/video/k053244_k053245.h @@ -10,16 +10,6 @@ typedef device_delegate k05324x_cb_ #define K05324X_CB_MEMBER(_name) void _name(int *code, int *color, int *priority) -#define MCFG_K05324X_BPP(_bpp) \ - downcast(*device).set_bpp(_bpp); - -#define MCFG_K05324X_CB(_class, _method) \ - downcast(*device).set_k05324x_callback(k05324x_cb_delegate(&_class::_method, #_class "::" #_method, this)); - -#define MCFG_K05324X_OFFSETS(_xoffs, _yoffs) \ - downcast(*device).set_offsets(_xoffs, _yoffs); - - class k05324x_device : public device_t, public device_gfx_interface { static const gfx_layout spritelayout; @@ -32,7 +22,7 @@ public: // configuration void set_bpp(int bpp); - void set_k05324x_callback(k05324x_cb_delegate callback) { m_k05324x_cb = callback; } + template void set_sprite_callback(T &&... args) { m_k05324x_cb = k05324x_cb_delegate(std::forward(args)...); } void set_offsets(int x_offset, int y_offset) { m_dx = x_offset; diff --git a/src/mame/video/k054338.cpp b/src/mame/video/k054338.cpp index a906ae31115..405aac6d327 100644 --- a/src/mame/video/k054338.cpp +++ b/src/mame/video/k054338.cpp @@ -148,7 +148,7 @@ void k054338_device::fill_backcolor(bitmap_rgb32 &bitmap, const rectangle &clipr } } -// addition blending unimplemented (requires major changes to drawgfx and tilemap.c) +// addition blending unimplemented (requires major changes to drawgfx and tilemap.cpp) int k054338_device::set_alpha_level( int pblend ) { uint16_t *regs; diff --git a/src/mame/video/k054338.h b/src/mame/video/k054338.h index 9999cee0748..aefdd5e56c7 100644 --- a/src/mame/video/k054338.h +++ b/src/mame/video/k054338.h @@ -67,7 +67,4 @@ private: DECLARE_DEVICE_TYPE(K054338, k054338_device) -#define MCFG_K054338_ALPHAINV(_alphainv) \ - downcast(*device).set_alpha_invert(_alphainv); - #endif // MAME_VIDEO_K054338_H diff --git a/src/mame/video/k057714.h b/src/mame/video/k057714.h index 2b902fc62b6..a52bb898c5a 100644 --- a/src/mame/video/k057714.h +++ b/src/mame/video/k057714.h @@ -10,7 +10,7 @@ class k057714_device : public device_t { public: k057714_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_irq_callback(Object &&cb) { return m_irq.set_callback(std::forward(cb)); } + auto irq_callback() { return m_irq.bind(); } int draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); @@ -63,8 +63,5 @@ private: DECLARE_DEVICE_TYPE(K057714, k057714_device) -#define MCFG_K057714_IRQ_CALLBACK(_devcb) \ - downcast(*device).set_irq_callback(DEVCB_##_devcb); - #endif // MAME_MACHINE_K057714_H diff --git a/src/mame/video/pcd.h b/src/mame/video/pcd.h index 22a28000616..b4b38fc97db 100644 --- a/src/mame/video/pcd.h +++ b/src/mame/video/pcd.h @@ -14,9 +14,6 @@ #include "diserial.h" -#define MCFG_PCX_VIDEO_TXD_HANDLER(_devcb) \ - downcast(*device).set_txd_handler(DEVCB_##_devcb); - class pcdx_video_device : public device_t, public device_gfx_interface { public: @@ -86,7 +83,7 @@ class pcx_video_device : public pcdx_video_device, { public: pcx_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_txd_handler(Object &&cb) { return m_txd_handler.set_callback(std::forward(cb)); } + auto txd_handler() { return m_txd_handler.bind(); } virtual void map(address_map &map) override; DECLARE_READ8_MEMBER(term_r); diff --git a/src/mame/video/powervr2.h b/src/mame/video/powervr2.h index ce402e07302..f6b54778004 100644 --- a/src/mame/video/powervr2.h +++ b/src/mame/video/powervr2.h @@ -5,10 +5,6 @@ #pragma once -#define MCFG_POWERVR2_ADD(_tag, _irq_cb) \ - MCFG_DEVICE_ADD(_tag, POWERVR2, 0) \ - downcast(device)->set_irq_cb(DEVCB_ ## _irq_cb); - class powervr2_device : public device_t, public device_video_interface { @@ -199,7 +195,7 @@ public: int next_y; powervr2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template void set_irq_cb(Object &&cb) { irq_cb.set_callback(std::forward(cb)); } + auto irq_callback() { return irq_cb.bind(); } DECLARE_READ32_MEMBER( id_r ); DECLARE_READ32_MEMBER( revision_r ); diff --git a/src/mame/video/segaic24.h b/src/mame/video/segaic24.h index dfc17df0099..0691d59499a 100644 --- a/src/mame/video/segaic24.h +++ b/src/mame/video/segaic24.h @@ -10,12 +10,6 @@ #pragma once -#define MCFG_S24TILE_XHOUT_CALLBACK(_write) \ - downcast(*device).set_xhout_write_callback(DEVCB_##_write); - -#define MCFG_S24TILE_XVOUT_CALLBACK(_write) \ - downcast(*device).set_xvout_write_callback(DEVCB_##_write); - class segas24_tile_device : public device_t, public device_gfx_interface { @@ -43,8 +37,8 @@ public: void draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int pri, int flags); void draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int pri, int flags); - template devcb_base &set_xhout_write_callback(Object &&cb) { return m_xhout_write_cb.set_callback(std::forward(cb)); } - template devcb_base &set_xvout_write_callback(Object &&cb) { return m_xvout_write_cb.set_callback(std::forward(cb)); } + auto xhout_write_callback() { return m_xhout_write_cb.bind(); } + auto xvout_write_callback() { return m_xvout_write_cb.bind(); } protected: virtual void device_start() override; diff --git a/src/mame/video/seibu_crtc.h b/src/mame/video/seibu_crtc.h index e6e58be1e10..3e2cb876775 100644 --- a/src/mame/video/seibu_crtc.h +++ b/src/mame/video/seibu_crtc.h @@ -12,26 +12,6 @@ #pragma once -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_SEIBU_CRTC_DECRYPT_KEY_CB(_devcb) \ - downcast(*device).set_decrypt_key_callback(DEVCB_##_devcb); - -#define MCFG_SEIBU_CRTC_LAYER_EN_CB(_devcb) \ - downcast(*device).set_layer_en_callback(DEVCB_##_devcb); - -#define MCFG_SEIBU_CRTC_LAYER_SCROLL_CB(_devcb) \ - downcast(*device).set_layer_scroll_callback(DEVCB_##_devcb); - -#define MCFG_SEIBU_CRTC_LAYER_SCROLL_BASE_CB(_devcb) \ - downcast(*device).set_layer_scroll_base_callback(DEVCB_##_devcb); - -#define MCFG_SEIBU_CRTC_REG_1A_CB(_devcb) \ - downcast(*device).set_reg_1a_callback(DEVCB_##_devcb); - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -46,11 +26,11 @@ public: // construction/destruction seibu_crtc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_decrypt_key_callback(Object &&cb) { return m_decrypt_key_cb.set_callback(std::forward(cb)); } - template devcb_base &set_layer_en_callback(Object &&cb) { return m_layer_en_cb.set_callback(std::forward(cb)); } - template devcb_base &set_layer_scroll_callback(Object &&cb) { return m_layer_scroll_cb.set_callback(std::forward(cb)); } - template devcb_base &set_reg_1a_callback(Object &&cb) { return m_reg_1a_cb.set_callback(std::forward(cb)); } - template devcb_base &set_layer_scroll_base_callback(Object &&cb) { return m_layer_scroll_base_cb.set_callback(std::forward(cb)); } + auto decrypt_key_callback() { return m_decrypt_key_cb.bind(); } + auto layer_en_callback() { return m_layer_en_cb.bind(); } + auto layer_scroll_callback() { return m_layer_scroll_cb.bind(); } + auto reg_1a_callback() { return m_reg_1a_cb.bind(); } + auto layer_scroll_base_callback() { return m_layer_scroll_base_cb.bind(); } // I/O operations DECLARE_WRITE16_MEMBER( write ); diff --git a/src/mame/video/tc0180vcu.h b/src/mame/video/tc0180vcu.h index 93eb3d877c0..0692158d5e2 100644 --- a/src/mame/video/tc0180vcu.h +++ b/src/mame/video/tc0180vcu.h @@ -5,11 +5,6 @@ #pragma once -#define MCFG_TC0180VCU_INTH_CALLBACK(_write) \ - downcast(*device).set_inth_callback(DEVCB_##_write); -#define MCFG_TC0180VCU_INTL_CALLBACK(_write) \ - downcast(*device).set_intl_callback(DEVCB_##_write); - class tc0180vcu_device : public device_t, public device_gfx_interface, public device_video_interface { public: @@ -20,8 +15,8 @@ public: void set_bg_colorbase(int color) { m_bg_color_base = color; } void set_fg_colorbase(int color) { m_fg_color_base = color; } void set_tx_colorbase(int color) { m_tx_color_base = color; } - template devcb_base &set_inth_callback(Object &&cb) { return m_inth_callback.set_callback(std::forward(cb)); } - template devcb_base &set_intl_callback(Object &&cb) { return m_intl_callback.set_callback(std::forward(cb)); } + auto inth_callback() { return m_inth_callback.bind(); } + auto intl_callback() { return m_intl_callback.bind(); } uint8_t get_videoctrl() { return m_video_control; } DECLARE_WRITE16_MEMBER( ctrl_w ); @@ -84,16 +79,4 @@ private: DECLARE_DEVICE_TYPE(TC0180VCU, tc0180vcu_device) -#define MCFG_TC0180VCU_FB_COLORBASE(_color) \ - downcast(*device).set_fb_colorbase(_color); - -#define MCFG_TC0180VCU_BG_COLORBASE(_color) \ - downcast(*device).set_bg_colorbase(_color); - -#define MCFG_TC0180VCU_FG_COLORBASE(_color) \ - downcast(*device).set_fg_colorbase(_color); - -#define MCFG_TC0180VCU_TX_COLORBASE(_color) \ - downcast(*device).set_tx_colorbase(_color); - #endif // MAME_VIDEO_TC0180VCU_H diff --git a/src/mame/video/tia.h b/src/mame/video/tia.h index 57c9ade29aa..f166408cf52 100644 --- a/src/mame/video/tia.h +++ b/src/mame/video/tia.h @@ -31,18 +31,6 @@ struct player_gfx { int skipclip[PLAYER_GFX_SLOTS]; }; -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_TIA_READ_INPUT_PORT_CB(_devcb) \ - downcast(*device).set_read_input_port_callback(DEVCB_##_devcb); - -#define MCFG_TIA_DATABUS_CONTENTS_CB(_devcb) \ - downcast(*device).set_databus_contents_callback(DEVCB_##_devcb); - -#define MCFG_TIA_VSYNC_CB(_devcb) \ - downcast(*device).set_vsync_callback(DEVCB_##_devcb); //************************************************************************** // TYPE DEFINITIONS @@ -57,9 +45,9 @@ class tia_video_device : public device_t, public: uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - template devcb_base &set_read_input_port_callback(Object &&cb) { return m_read_input_port_cb.set_callback(std::forward(cb)); } - template devcb_base &set_databus_contents_callback(Object &&cb) { return m_databus_contents_cb.set_callback(std::forward(cb)); } - template devcb_base &set_vsync_callback(Object &&cb) { return m_vsync_cb.set_callback(std::forward(cb)); } + auto read_input_port_callback() { return m_read_input_port_cb.bind(); } + auto databus_contents_callback() { return m_databus_contents_cb.bind(); } + auto vsync_callback() { return m_vsync_cb.bind(); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); diff --git a/src/mame/video/uv201.h b/src/mame/video/uv201.h index 26d11435a92..bff50bbff45 100644 --- a/src/mame/video/uv201.h +++ b/src/mame/video/uv201.h @@ -60,21 +60,6 @@ #include "screen.h" -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_UV201_EXT_INT_CALLBACK(_write) \ - downcast(*device).set_ext_int_wr_callback(DEVCB_##_write); - -#define MCFG_UV201_HBLANK_CALLBACK(_write) \ - downcast(*device).set_hblank_wr_callback(DEVCB_##_write); - -#define MCFG_UV201_DB_CALLBACK(_read) \ - downcast(*device).set_db_rd_callback(DEVCB_##_read); - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -88,9 +73,9 @@ public: // construction/destruction uv201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_ext_int_wr_callback(Object &&cb) { return m_write_ext_int.set_callback(std::forward(cb)); } - template devcb_base &set_hblank_wr_callback(Object &&cb) { return m_write_hblank.set_callback(std::forward(cb)); } - template devcb_base &set_db_rd_callback(Object &&cb) { return m_read_db.set_callback(std::forward(cb)); } + auto ext_int_wr_callback() { return m_write_ext_int.bind(); } + auto hblank_wr_callback() { return m_write_hblank.bind(); } + auto db_rd_callback() { return m_read_db.bind(); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); diff --git a/src/mame/video/vtvideo.h b/src/mame/video/vtvideo.h index fa91cc64398..0d135a3973b 100644 --- a/src/mame/video/vtvideo.h +++ b/src/mame/video/vtvideo.h @@ -23,12 +23,12 @@ class vt100_video_device : public device_t, public: vt100_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_ram_rd_callback(Object &&cb) { return m_read_ram.set_callback(std::forward(cb)); } - template devcb_base &set_vert_freq_intr_wr_callback(Object &&cb) { return m_write_vert_freq_intr.set_callback(std::forward(cb)); } - template devcb_base &set_lba3_lba4_wr_callback(Object &&cb) { return m_write_lba3_lba4.set_callback(std::forward(cb)); } - template devcb_base &set_lba7_wr_callback(Object &&cb) { return m_write_lba7.set_callback(std::forward(cb)); } + auto ram_rd_callback() { return m_read_ram.bind(); } + auto vert_freq_intr_wr_callback() { return m_write_vert_freq_intr.bind(); } + auto lba3_lba4_wr_callback() { return m_write_lba3_lba4.bind(); } + auto lba7_wr_callback() { return m_write_lba7.bind(); } - void set_chargen_tag(const char *tag) { m_char_rom.set_tag(tag); } + template void set_chargen(T &&tag) { m_char_rom.set_tag(std::forward(tag)); } DECLARE_READ_LINE_MEMBER(lba7_r); DECLARE_WRITE8_MEMBER(dc012_w); @@ -111,21 +111,4 @@ DECLARE_DEVICE_TYPE(VT100_VIDEO, vt100_video_device) DECLARE_DEVICE_TYPE(RAINBOW_VIDEO, rainbow_video_device) -#define MCFG_VT_SET_SCREEN MCFG_VIDEO_SET_SCREEN - -#define MCFG_VT_CHARGEN(_tag) \ - downcast(*device).set_chargen_tag(_tag); - -#define MCFG_VT_VIDEO_RAM_CALLBACK(_read) \ - downcast(*device).set_ram_rd_callback(DEVCB_##_read); - -#define MCFG_VT_VIDEO_VERT_FREQ_INTR_CALLBACK(_write) \ - downcast(*device).set_vert_freq_intr_wr_callback(DEVCB_##_write); - -#define MCFG_VT_VIDEO_LBA3_LBA4_CALLBACK(_write) \ - downcast(*device).set_lba3_lba4_wr_callback(DEVCB_##_write); - -#define MCFG_VT_VIDEO_LBA7_CALLBACK(_write) \ - downcast(*device).set_lba7_wr_callback(DEVCB_##_write); - #endif // MAME_VIDEO_VTVIDEO_H diff --git a/src/mame/video/wpc_dmd.h b/src/mame/video/wpc_dmd.h index a6d6f6bfa3f..4f0f3f82cb6 100644 --- a/src/mame/video/wpc_dmd.h +++ b/src/mame/video/wpc_dmd.h @@ -10,9 +10,6 @@ #include "machine/timer.h" -#define MCFG_WPC_DMD_SCANLINE_CALLBACK(_scanline_cb) \ - downcast(*device).set_scanline_cb(DEVCB_##_scanline_cb); - class wpc_dmd_device : public device_t { public: @@ -30,7 +27,7 @@ public: DECLARE_WRITE8_MEMBER(visible_page_w); DECLARE_WRITE8_MEMBER(firq_scanline_w); - template devcb_base &set_scanline_cb(Object &&cb) { return scanline_cb.set_callback(std::forward(cb)); } + auto scanline_callback() { return scanline_cb.bind(); } protected: devcb_write_line scanline_cb; diff --git a/src/mame/video/ygv608.h b/src/mame/video/ygv608.h index a26c631ce53..28eca3f63f7 100644 --- a/src/mame/video/ygv608.h +++ b/src/mame/video/ygv608.h @@ -89,16 +89,12 @@ public: uint32_t update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - template devcb_base &set_vblank_callback(Object &&cb) - { - return m_vblank_handler.set_callback(std::forward(cb)); - } - template devcb_base &set_raster_callback(Object &&cb) - { - return m_raster_handler.set_callback(std::forward(cb)); - } + auto vblank_callback() { return m_vblank_handler.bind(); } + + auto raster_callback() { return m_raster_handler.bind(); } void regs_map(address_map &map); + protected: // device-level overrides virtual void device_start() override; @@ -108,6 +104,7 @@ protected: void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; address_space *m_iospace; + private: const address_space_config m_io_space_config; static constexpr unsigned SPRITE_ATTR_TABLE_SIZE = 256; @@ -311,15 +308,4 @@ private: DECLARE_DEVICE_TYPE(YGV608, ygv608_device) -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_YGV608_VBLANK_HANDLER( _intcallb ) \ - downcast(*device).set_vblank_callback(DEVCB_##_intcallb); - -#define MCFG_YGV608_RASTER_HANDLER( _intcallb ) \ - downcast(*device).set_raster_callback(DEVCB_##_intcallb); - - #endif -- cgit v1.2.3