diff --git a/src/mame/drivers/zaccaria.cpp b/src/mame/drivers/zaccaria.cpp index 49c033c1888..834eeb1a240 100644 --- a/src/mame/drivers/zaccaria.cpp +++ b/src/mame/drivers/zaccaria.cpp @@ -324,10 +324,10 @@ static GFXDECODE_START( zaccaria ) GFXDECODE_END -INTERRUPT_GEN_MEMBER(zaccaria_state::vblank_irq) +WRITE_LINE_MEMBER(zaccaria_state::vblank_irq) { - if (m_nmi_mask) - device.execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); + if (state && m_nmi_mask) + m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } @@ -336,7 +336,7 @@ MACHINE_CONFIG_START(zaccaria_state::zaccaria) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80,XTAL(18'432'000)/6) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(main_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", zaccaria_state, vblank_irq) + // MCFG_QUANTUM_TIME(attotime::from_hz(1000000)) MCFG_WATCHDOG_ADD("watchdog") @@ -362,6 +362,7 @@ MACHINE_CONFIG_START(zaccaria_state::zaccaria) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(zaccaria_state, vblank_irq)) MCFG_GFXDECODE_ADD("gfxdecode", "palette", zaccaria) MCFG_PALETTE_ADD("palette", 32*8+32*8) diff --git a/src/mame/includes/zaccaria.h b/src/mame/includes/zaccaria.h index 23b5979088b..c606a7c9dd6 100644 --- a/src/mame/includes/zaccaria.h +++ b/src/mame/includes/zaccaria.h @@ -34,7 +34,7 @@ public: virtual void video_start() override; DECLARE_PALETTE_INIT(zaccaria); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(vblank_irq); + DECLARE_WRITE_LINE_MEMBER(vblank_irq); void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,uint8_t *spriteram,int color,int section); void zaccaria(machine_config &config);