diff options
Diffstat (limited to 'src/emu/diexec.cpp')
-rw-r--r-- | src/emu/diexec.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/emu/diexec.cpp b/src/emu/diexec.cpp index 972c3ecdf96..c7f4752bd6d 100644 --- a/src/emu/diexec.cpp +++ b/src/emu/diexec.cpp @@ -345,13 +345,12 @@ void device_execute_interface::execute_set_input(int linenum, int state) void device_execute_interface::interface_validity_check(validity_checker &valid) const { // validate the interrupts - if (!m_vblank_interrupt.isnull()) + if (!m_vblank_interrupt_screen) { - screen_device_iterator iter(device().mconfig().root_device()); - if (iter.first() == nullptr) - osd_printf_error("VBLANK interrupt specified, but the driver is screenless\n"); - else if (m_vblank_interrupt_screen == nullptr) - osd_printf_error("VBLANK interrupt references a non-existant screen tag\n"); + if (m_vblank_interrupt_screen.finder_tag() != finder_base::DUMMY_TAG) + osd_printf_error("VBLANK interrupt references non-existent screen tag %s\n", m_vblank_interrupt_screen.finder_tag()); + else if (!m_vblank_interrupt.isnull()) + osd_printf_error("VBLANK interrupt specified, but no screen configured\n"); } if (!m_timed_interrupt.isnull() && m_timed_interrupt_period == attotime::zero) @@ -444,9 +443,7 @@ void device_execute_interface::interface_post_reset() // reconfingure VBLANK interrupts if (m_vblank_interrupt_screen) - { m_vblank_interrupt_screen->register_vblank_callback(vblank_state_delegate(&device_execute_interface::on_vblank, this)); - } // reconfigure periodic interrupts if (m_timed_interrupt_period != attotime::zero) |