diff --git a/src/mame/drivers/mjkjidai.cpp b/src/mame/drivers/mjkjidai.cpp index 489cc7b688a..baf56bf7271 100644 --- a/src/mame/drivers/mjkjidai.cpp +++ b/src/mame/drivers/mjkjidai.cpp @@ -274,10 +274,10 @@ static GFXDECODE_START( mjkjidai ) GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 16 ) GFXDECODE_END -INTERRUPT_GEN_MEMBER(mjkjidai_state::vblank_irq) +WRITE_LINE_MEMBER(mjkjidai_state::vblank_irq) { - if(m_nmi_enable) - device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); + if (state && m_nmi_enable) + m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); } void mjkjidai_state::machine_start() @@ -302,7 +302,6 @@ MACHINE_CONFIG_START(mjkjidai_state::mjkjidai) MCFG_CPU_ADD("maincpu", Z80,10000000/2) /* 5 MHz ??? */ MCFG_CPU_PROGRAM_MAP(mjkjidai_map) MCFG_CPU_IO_MAP(mjkjidai_io_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", mjkjidai_state, vblank_irq) MCFG_NVRAM_ADD_NO_FILL("nvram") @@ -325,6 +324,7 @@ MACHINE_CONFIG_START(mjkjidai_state::mjkjidai) MCFG_SCREEN_VISIBLE_AREA(3*8, 61*8-1, 2*8, 30*8-1) MCFG_SCREEN_UPDATE_DRIVER(mjkjidai_state, screen_update_mjkjidai) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(mjkjidai_state, vblank_irq)) MCFG_GFXDECODE_ADD("gfxdecode", "palette", mjkjidai) MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", "proms", 0x100) diff --git a/src/mame/includes/mjkjidai.h b/src/mame/includes/mjkjidai.h index 51fed63d2d5..64adf654217 100644 --- a/src/mame/includes/mjkjidai.h +++ b/src/mame/includes/mjkjidai.h @@ -47,7 +47,7 @@ public: virtual void machine_reset() override; virtual void video_start() override; uint32_t screen_update_mjkjidai(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); void mjkjidai(machine_config &config); void mjkjidai_io_map(address_map &map); diff --git a/src/mame/video/mjkjidai.cpp b/src/mame/video/mjkjidai.cpp index c5e7e388e09..0f66797bb87 100644 --- a/src/mame/video/mjkjidai.cpp +++ b/src/mame/video/mjkjidai.cpp @@ -51,6 +51,8 @@ WRITE8_MEMBER(mjkjidai_state::mjkjidai_ctrl_w) /* bit 0 = NMI enable */ m_nmi_enable = data & 1; + if (!m_nmi_enable) + m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); /* bit 1 = flip screen */ flip_screen_set(data & 0x02);