From d15e5659ba5d63241bab9d098fc6d15a96ef7505 Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 28 Mar 2018 13:26:38 -0400 Subject: pacman.cpp, etc.: Replace CPU_VBLANK_INT with SCREEN_VBLANK_CALLBACK (nw) --- src/mame/drivers/jrpacman.cpp | 10 +++++----- src/mame/drivers/pacman.cpp | 43 ++++++++++++++++++++++++++++--------------- src/mame/drivers/pengo.cpp | 11 +++++------ src/mame/includes/pacman.h | 8 +++++--- 4 files changed, 43 insertions(+), 29 deletions(-) diff --git a/src/mame/drivers/jrpacman.cpp b/src/mame/drivers/jrpacman.cpp index 75eb62c2f7d..3fd2ca9d79a 100644 --- a/src/mame/drivers/jrpacman.cpp +++ b/src/mame/drivers/jrpacman.cpp @@ -117,7 +117,7 @@ public: DECLARE_WRITE8_MEMBER(jrpacman_interrupt_vector_w); DECLARE_WRITE_LINE_MEMBER(irq_mask_w); DECLARE_DRIVER_INIT(jrpacman); - INTERRUPT_GEN_MEMBER(vblank_irq); + DECLARE_WRITE_LINE_MEMBER(vblank_irq); void jrpacman(machine_config &config); void main_map(address_map &map); void port_map(address_map &map); @@ -269,10 +269,10 @@ GFXDECODE_END * *************************************/ -INTERRUPT_GEN_MEMBER(jrpacman_state::vblank_irq) +WRITE_LINE_MEMBER(jrpacman_state::vblank_irq) { - if(m_irq_mask) - device.execute().set_input_line(0, HOLD_LINE); + if (state && m_irq_mask) + m_maincpu->set_input_line(0, HOLD_LINE); } MACHINE_CONFIG_START(jrpacman_state::jrpacman) @@ -281,7 +281,6 @@ MACHINE_CONFIG_START(jrpacman_state::jrpacman) MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */ MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_IO_MAP(port_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", jrpacman_state, vblank_irq) MCFG_DEVICE_ADD("latch1", LS259, 0) // 5P MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(jrpacman_state, irq_mask_w)) @@ -306,6 +305,7 @@ MACHINE_CONFIG_START(jrpacman_state::jrpacman) MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(jrpacman_state, i,kvblank_irq)) MCFG_GFXDECODE_ADD("gfxdecode", "palette", jrpacman) MCFG_PALETTE_ADD("palette", 128*4) diff --git a/src/mame/drivers/pacman.cpp b/src/mame/drivers/pacman.cpp index 06052dffd92..5645f63236b 100644 --- a/src/mame/drivers/pacman.cpp +++ b/src/mame/drivers/pacman.cpp @@ -408,16 +408,28 @@ MACHINE_RESET_MEMBER(pacman_state,maketrax) * *************************************/ -INTERRUPT_GEN_MEMBER(pacman_state::vblank_irq) +WRITE_LINE_MEMBER(pacman_state::vblank_irq) +{ + if (state && m_irq_mask) + m_maincpu->set_input_line(0, HOLD_LINE); +} + +WRITE_LINE_MEMBER(pacman_state::rocktrv2_vblank_irq) +{ + if (state) + m_maincpu->set_input_line(0, HOLD_LINE); +} + +INTERRUPT_GEN_MEMBER(pacman_state::periodic_irq) { if(m_irq_mask) device.execute().set_input_line(0, HOLD_LINE); } -INTERRUPT_GEN_MEMBER(pacman_state::vblank_nmi) +WRITE_LINE_MEMBER(pacman_state::vblank_nmi) { - if(m_irq_mask) - device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + if (state && m_irq_mask) + m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } WRITE_LINE_MEMBER(pacman_state::irq_mask_w) @@ -726,9 +738,10 @@ READ8_MEMBER(pacman_state::bigbucks_question_r) * ************************************/ -INTERRUPT_GEN_MEMBER(pacman_state::s2650_interrupt) +WRITE_LINE_MEMBER(pacman_state::s2650_interrupt) { - device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x03); + if (state) + m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x03); } WRITE8_MEMBER(pacman_state::porky_banking_w) @@ -3524,7 +3537,6 @@ MACHINE_CONFIG_START(pacman_state::pacman) MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) MCFG_CPU_PROGRAM_MAP(pacman_map) MCFG_CPU_IO_MAP(writeport) - MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_irq) MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 74LS259 at 8K or 4099 at 7K MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(pacman_state, irq_mask_w)) @@ -3550,6 +3562,7 @@ MACHINE_CONFIG_START(pacman_state::pacman) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(pacman_state, vblank_irq)) MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman) @@ -3679,7 +3692,9 @@ MACHINE_CONFIG_START(pacman_state::dremshpr) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(dremshpr_map) MCFG_CPU_IO_MAP(dremshpr_portmap) - MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_nmi) + + MCFG_DEVICE_MODIFY("screen") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(pacman_state, vblank_nmi)) /* sound hardware */ MCFG_DEVICE_REMOVE("namco") @@ -3737,11 +3752,11 @@ MACHINE_CONFIG_START(pacman_state::vanvan) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(dremshpr_map) MCFG_CPU_IO_MAP(vanvan_portmap) - MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_nmi) /* video hardware */ MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 0*8, 28*8-1) + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(pacman_state, vblank_nmi)) /* sound hardware */ MCFG_DEVICE_REMOVE("namco") @@ -3764,7 +3779,7 @@ MACHINE_CONFIG_START(pacman_state::bigbucks) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(bigbucks_map) MCFG_CPU_IO_MAP(bigbucks_portmap) - MCFG_CPU_PERIODIC_INT_DRIVER(pacman_state, vblank_irq, 20*60) + MCFG_CPU_PERIODIC_INT_DRIVER(pacman_state, periodic_irq, 20*60) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) @@ -3778,11 +3793,9 @@ MACHINE_CONFIG_START(pacman_state::s2650games) pacman(config); /* basic machine hardware */ - MCFG_DEVICE_REMOVE("maincpu") - MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/6/2) /* 2H */ + MCFG_CPU_REPLACE("maincpu", S2650, MASTER_CLOCK/6/2) /* 2H */ MCFG_CPU_PROGRAM_MAP(s2650games_map) MCFG_CPU_DATA_MAP(s2650games_dataport) - MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, s2650_interrupt) MCFG_S2650_SENSE_INPUT(DEVREADLINE("screen", screen_device, vblank)) MCFG_DEVCB_INVERT MCFG_DEVICE_MODIFY("mainlatch") @@ -3802,6 +3815,7 @@ MACHINE_CONFIG_START(pacman_state::s2650games) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_s2650games) + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(pacman_state, s2650_interrupt)) MCFG_VIDEO_START_OVERRIDE(pacman_state,s2650games) @@ -3845,10 +3859,10 @@ MACHINE_CONFIG_START(pacman_state::rocktrv2) /* basic machine hardware */ MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(rocktrv2_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, irq0_line_hold) MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(pacman_state, rocktrv2_vblank_irq)) MACHINE_CONFIG_END @@ -3859,7 +3873,6 @@ MACHINE_CONFIG_START(pacman_state::mschamp) MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(mschamp_map) MCFG_CPU_IO_MAP(mschamp_portmap) - MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_irq) MCFG_MACHINE_RESET_OVERRIDE(pacman_state,mschamp) MACHINE_CONFIG_END diff --git a/src/mame/drivers/pengo.cpp b/src/mame/drivers/pengo.cpp index 583294aa57d..f4281c83544 100644 --- a/src/mame/drivers/pengo.cpp +++ b/src/mame/drivers/pengo.cpp @@ -82,7 +82,7 @@ public: DECLARE_WRITE_LINE_MEMBER(coin_counter_2_w); DECLARE_WRITE_LINE_MEMBER(irq_mask_w); DECLARE_DRIVER_INIT(penta); - INTERRUPT_GEN_MEMBER(vblank_irq); + DECLARE_WRITE_LINE_MEMBER(vblank_irq); optional_shared_ptr m_decrypted_opcodes; void jrpacmbl(machine_config &config); @@ -369,10 +369,10 @@ GFXDECODE_END * *************************************/ -INTERRUPT_GEN_MEMBER(pengo_state::vblank_irq) +WRITE_LINE_MEMBER(pengo_state::vblank_irq) { - if(m_irq_mask) - device.execute().set_input_line(0, HOLD_LINE); + if (state && m_irq_mask) + m_maincpu->set_input_line(0, HOLD_LINE); } @@ -382,7 +382,6 @@ MACHINE_CONFIG_START(pengo_state::pengo) MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) MCFG_CPU_PROGRAM_MAP(pengo_map) MCFG_CPU_OPCODES_MAP(decrypted_opcodes_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", pengo_state, vblank_irq) MCFG_DEVICE_ADD("latch", LS259, 0) // U27 MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(pengo_state, irq_mask_w)) @@ -406,6 +405,7 @@ MACHINE_CONFIG_START(pengo_state::pengo) MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(pengo_state, vblank_irq)) MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo) @@ -429,7 +429,6 @@ MACHINE_CONFIG_START(pengo_state::pengoe) MCFG_CPU_REPLACE("maincpu", SEGA_315_5010, MASTER_CLOCK/6) MCFG_CPU_PROGRAM_MAP(pengo_map) MCFG_CPU_OPCODES_MAP(decrypted_opcodes_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", pengo_state, vblank_irq) MCFG_SEGACRPT_SET_DECRYPTED_TAG(":decrypted_opcodes") MACHINE_CONFIG_END diff --git a/src/mame/includes/pacman.h b/src/mame/includes/pacman.h index 69fcea02ddf..72069d9ff77 100644 --- a/src/mame/includes/pacman.h +++ b/src/mame/includes/pacman.h @@ -183,9 +183,11 @@ public: DECLARE_VIDEO_START(jrpacman); uint32_t screen_update_pacman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_s2650games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(vblank_irq); - INTERRUPT_GEN_MEMBER(vblank_nmi); - INTERRUPT_GEN_MEMBER(s2650_interrupt); + DECLARE_WRITE_LINE_MEMBER(vblank_irq); + INTERRUPT_GEN_MEMBER(periodic_irq); + DECLARE_WRITE_LINE_MEMBER(rocktrv2_vblank_irq); + DECLARE_WRITE_LINE_MEMBER(vblank_nmi); + DECLARE_WRITE_LINE_MEMBER(s2650_interrupt); private: void init_save_state(); -- cgit v1.2.3