From 3a0f55c31d78e2ddc3ca194d48ceaa8b6cfb0e6c Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 28 Mar 2018 14:52:57 -0400 Subject: mappy.cpp: Use MCFG_SCREEN_VBLANK_CALLBACK instead of MCFG_CPU_VBLANK_INT (nw) --- src/mame/drivers/mappy.cpp | 23 ++++++++--------------- src/mame/includes/mappy.h | 4 +--- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp index 690b6d3c679..3128cc35005 100644 --- a/src/mame/drivers/mappy.cpp +++ b/src/mame/drivers/mappy.cpp @@ -621,8 +621,11 @@ void mappy_state::device_timer(emu_timer &timer, device_timer_id id, int param, } } -INTERRUPT_GEN_MEMBER(mappy_state::main_vblank_irq) +WRITE_LINE_MEMBER(mappy_state::vblank_irq) { + if (!state) + return; + if (m_main_irq_mask) m_maincpu->set_input_line(0, ASSERT_LINE); @@ -631,17 +634,11 @@ INTERRUPT_GEN_MEMBER(mappy_state::main_vblank_irq) if (!m_namcoio[1]->read_reset_line()) // give the cpu a tiny bit of time to write the command before processing it timer_set(attotime::from_usec(50), TIMER_IO_RUN, 1); -} -INTERRUPT_GEN_MEMBER(mappy_state::sub_vblank_irq) -{ if (m_sub_irq_mask) m_subcpu->set_input_line(0, ASSERT_LINE); -} -INTERRUPT_GEN_MEMBER(mappy_state::sub2_vblank_irq) -{ - if (m_sub2_irq_mask) + if (m_subcpu2.found() && m_sub2_irq_mask) m_subcpu2->set_input_line(0, ASSERT_LINE); } @@ -1324,11 +1321,9 @@ MACHINE_CONFIG_START(mappy_state::superpac_common) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */ MCFG_CPU_PROGRAM_MAP(superpac_cpu1_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, main_vblank_irq) // also update the custom I/O chips MCFG_CPU_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */ MCFG_CPU_PROGRAM_MAP(superpac_cpu2_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, sub_vblank_irq) MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 2M on CPU board MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(mappy_state, int_on_2_w)) @@ -1357,6 +1352,7 @@ MACHINE_CONFIG_START(mappy_state::superpac_common) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_superpac) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(mappy_state, vblank_irq)) // cause IRQs on both CPUs; also update the custom I/O chips MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac) @@ -1436,15 +1432,12 @@ MACHINE_CONFIG_START(mappy_state::phozon) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* MAIN CPU */ MCFG_CPU_PROGRAM_MAP(phozon_cpu1_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, main_vblank_irq) // also update the custom I/O chips MCFG_CPU_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* SOUND CPU */ MCFG_CPU_PROGRAM_MAP(phozon_cpu2_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, sub_vblank_irq) MCFG_CPU_ADD("sub2", MC6809E, PIXEL_CLOCK/4) /* SUB CPU */ MCFG_CPU_PROGRAM_MAP(phozon_cpu3_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, sub2_vblank_irq) MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 5C MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(mappy_state, int_on_2_w)) @@ -1487,6 +1480,7 @@ MACHINE_CONFIG_START(mappy_state::phozon) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_phozon) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(mappy_state, vblank_irq)) // cause IRQs on all three CPUs; also update the custom I/O chips MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon) @@ -1504,11 +1498,9 @@ MACHINE_CONFIG_START(mappy_state::mappy_common) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */ MCFG_CPU_PROGRAM_MAP(mappy_cpu1_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, main_vblank_irq) // also update the custom I/O chips MCFG_CPU_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */ MCFG_CPU_PROGRAM_MAP(mappy_cpu2_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", mappy_state, sub_vblank_irq) MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 2M on CPU board MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(mappy_state, int_on_2_w)) @@ -1538,6 +1530,7 @@ MACHINE_CONFIG_START(mappy_state::mappy_common) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_mappy) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(mappy_state, vblank_irq)) // cause IRQs on both CPUs; also update the custom I/O chips MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy) diff --git a/src/mame/includes/mappy.h b/src/mame/includes/mappy.h index 7e5dcb1e52a..73502e33da8 100644 --- a/src/mame/includes/mappy.h +++ b/src/mame/includes/mappy.h @@ -74,9 +74,7 @@ public: uint32_t screen_update_superpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_phozon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_mappy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(main_vblank_irq); - INTERRUPT_GEN_MEMBER(sub_vblank_irq); - INTERRUPT_GEN_MEMBER(sub2_vblank_irq); + DECLARE_WRITE_LINE_MEMBER(vblank_irq); DECLARE_DRIVER_INIT(grobda); DECLARE_DRIVER_INIT(digdug2); void mappy_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t *spriteram_base); -- cgit v1.2.3