pacman.cpp, etc.: Replace CPU_VBLANK_INT with SCREEN_VBLANK_CALLBACK (nw)

This commit is contained in:
AJR 2018-03-28 13:26:38 -04:00
parent 73f604fe90
commit d15e5659ba
4 changed files with 43 additions and 29 deletions

View File

@ -117,7 +117,7 @@ public:
DECLARE_WRITE8_MEMBER(jrpacman_interrupt_vector_w); DECLARE_WRITE8_MEMBER(jrpacman_interrupt_vector_w);
DECLARE_WRITE_LINE_MEMBER(irq_mask_w); DECLARE_WRITE_LINE_MEMBER(irq_mask_w);
DECLARE_DRIVER_INIT(jrpacman); DECLARE_DRIVER_INIT(jrpacman);
INTERRUPT_GEN_MEMBER(vblank_irq); DECLARE_WRITE_LINE_MEMBER(vblank_irq);
void jrpacman(machine_config &config); void jrpacman(machine_config &config);
void main_map(address_map &map); void main_map(address_map &map);
void port_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) if (state && m_irq_mask)
device.execute().set_input_line(0, HOLD_LINE); m_maincpu->set_input_line(0, HOLD_LINE);
} }
MACHINE_CONFIG_START(jrpacman_state::jrpacman) 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_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(main_map) MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(port_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_DEVICE_ADD("latch1", LS259, 0) // 5P
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(jrpacman_state, irq_mask_w)) 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_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman) MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
MCFG_SCREEN_PALETTE("palette") MCFG_SCREEN_PALETTE("palette")
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(jrpacman_state, i,kvblank_irq))
MCFG_GFXDECODE_ADD("gfxdecode", "palette", jrpacman) MCFG_GFXDECODE_ADD("gfxdecode", "palette", jrpacman)
MCFG_PALETTE_ADD("palette", 128*4) MCFG_PALETTE_ADD("palette", 128*4)

View File

@ -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) if(m_irq_mask)
device.execute().set_input_line(0, HOLD_LINE); 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) if (state && m_irq_mask)
device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
} }
WRITE_LINE_MEMBER(pacman_state::irq_mask_w) 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) 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_ADD("maincpu", Z80, MASTER_CLOCK/6)
MCFG_CPU_PROGRAM_MAP(pacman_map) MCFG_CPU_PROGRAM_MAP(pacman_map)
MCFG_CPU_IO_MAP(writeport) 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_DEVICE_ADD("mainlatch", LS259, 0) // 74LS259 at 8K or 4099 at 7K
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(pacman_state, irq_mask_w)) 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_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman) MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman)
MCFG_SCREEN_PALETTE("palette") MCFG_SCREEN_PALETTE("palette")
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(pacman_state, vblank_irq))
MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman) MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman)
@ -3679,7 +3692,9 @@ MACHINE_CONFIG_START(pacman_state::dremshpr)
MCFG_CPU_MODIFY("maincpu") MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(dremshpr_map) MCFG_CPU_PROGRAM_MAP(dremshpr_map)
MCFG_CPU_IO_MAP(dremshpr_portmap) 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 */ /* sound hardware */
MCFG_DEVICE_REMOVE("namco") MCFG_DEVICE_REMOVE("namco")
@ -3737,11 +3752,11 @@ MACHINE_CONFIG_START(pacman_state::vanvan)
MCFG_CPU_MODIFY("maincpu") MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(dremshpr_map) MCFG_CPU_PROGRAM_MAP(dremshpr_map)
MCFG_CPU_IO_MAP(vanvan_portmap) MCFG_CPU_IO_MAP(vanvan_portmap)
MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_nmi)
/* video hardware */ /* video hardware */
MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 0*8, 28*8-1) 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 */ /* sound hardware */
MCFG_DEVICE_REMOVE("namco") MCFG_DEVICE_REMOVE("namco")
@ -3764,7 +3779,7 @@ MACHINE_CONFIG_START(pacman_state::bigbucks)
MCFG_CPU_MODIFY("maincpu") MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(bigbucks_map) MCFG_CPU_PROGRAM_MAP(bigbucks_map)
MCFG_CPU_IO_MAP(bigbucks_portmap) 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_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) 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); pacman(config);
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_REMOVE("maincpu") MCFG_CPU_REPLACE("maincpu", S2650, MASTER_CLOCK/6/2) /* 2H */
MCFG_CPU_ADD("maincpu", S2650, MASTER_CLOCK/6/2) /* 2H */
MCFG_CPU_PROGRAM_MAP(s2650games_map) MCFG_CPU_PROGRAM_MAP(s2650games_map)
MCFG_CPU_DATA_MAP(s2650games_dataport) 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_S2650_SENSE_INPUT(DEVREADLINE("screen", screen_device, vblank)) MCFG_DEVCB_INVERT
MCFG_DEVICE_MODIFY("mainlatch") 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_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_s2650games) 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) MCFG_VIDEO_START_OVERRIDE(pacman_state,s2650games)
@ -3845,10 +3859,10 @@ MACHINE_CONFIG_START(pacman_state::rocktrv2)
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_MODIFY("maincpu") MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(rocktrv2_map) MCFG_CPU_PROGRAM_MAP(rocktrv2_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, irq0_line_hold)
MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) 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 MACHINE_CONFIG_END
@ -3859,7 +3873,6 @@ MACHINE_CONFIG_START(pacman_state::mschamp)
MCFG_CPU_MODIFY("maincpu") MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(mschamp_map) MCFG_CPU_PROGRAM_MAP(mschamp_map)
MCFG_CPU_IO_MAP(mschamp_portmap) MCFG_CPU_IO_MAP(mschamp_portmap)
MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_irq)
MCFG_MACHINE_RESET_OVERRIDE(pacman_state,mschamp) MCFG_MACHINE_RESET_OVERRIDE(pacman_state,mschamp)
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -82,7 +82,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(coin_counter_2_w); DECLARE_WRITE_LINE_MEMBER(coin_counter_2_w);
DECLARE_WRITE_LINE_MEMBER(irq_mask_w); DECLARE_WRITE_LINE_MEMBER(irq_mask_w);
DECLARE_DRIVER_INIT(penta); DECLARE_DRIVER_INIT(penta);
INTERRUPT_GEN_MEMBER(vblank_irq); DECLARE_WRITE_LINE_MEMBER(vblank_irq);
optional_shared_ptr<uint8_t> m_decrypted_opcodes; optional_shared_ptr<uint8_t> m_decrypted_opcodes;
void jrpacmbl(machine_config &config); 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) if (state && m_irq_mask)
device.execute().set_input_line(0, HOLD_LINE); 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_ADD("maincpu", Z80, MASTER_CLOCK/6)
MCFG_CPU_PROGRAM_MAP(pengo_map) MCFG_CPU_PROGRAM_MAP(pengo_map)
MCFG_CPU_OPCODES_MAP(decrypted_opcodes_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_DEVICE_ADD("latch", LS259, 0) // U27
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(pengo_state, irq_mask_w)) 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_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman) MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman)
MCFG_SCREEN_PALETTE("palette") MCFG_SCREEN_PALETTE("palette")
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(pengo_state, vblank_irq))
MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo) 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_REPLACE("maincpu", SEGA_315_5010, MASTER_CLOCK/6)
MCFG_CPU_PROGRAM_MAP(pengo_map) MCFG_CPU_PROGRAM_MAP(pengo_map)
MCFG_CPU_OPCODES_MAP(decrypted_opcodes_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") MCFG_SEGACRPT_SET_DECRYPTED_TAG(":decrypted_opcodes")
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -183,9 +183,11 @@ public:
DECLARE_VIDEO_START(jrpacman); DECLARE_VIDEO_START(jrpacman);
uint32_t screen_update_pacman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 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); uint32_t screen_update_s2650games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_irq); DECLARE_WRITE_LINE_MEMBER(vblank_irq);
INTERRUPT_GEN_MEMBER(vblank_nmi); INTERRUPT_GEN_MEMBER(periodic_irq);
INTERRUPT_GEN_MEMBER(s2650_interrupt); DECLARE_WRITE_LINE_MEMBER(rocktrv2_vblank_irq);
DECLARE_WRITE_LINE_MEMBER(vblank_nmi);
DECLARE_WRITE_LINE_MEMBER(s2650_interrupt);
private: private:
void init_save_state(); void init_save_state();