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_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)

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)
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

View File

@ -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<uint8_t> 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

View File

@ -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();