mirror of
https://github.com/holub/mame
synced 2025-10-05 16:50:57 +03:00
pacman.cpp, etc.: Replace CPU_VBLANK_INT with SCREEN_VBLANK_CALLBACK (nw)
This commit is contained in:
parent
73f604fe90
commit
d15e5659ba
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user