diff --git a/src/devices/machine/timer.cpp b/src/devices/machine/timer.cpp index 1108fe0927f..e4c0643ffa3 100644 --- a/src/devices/machine/timer.cpp +++ b/src/devices/machine/timer.cpp @@ -81,6 +81,10 @@ void timer_device::device_validity_check(validity_checker &valid) const osd_printf_warning("Scanline timer specified parameters for a periodic timer\n"); if (m_param != 0) osd_printf_warning("Scanline timer specified parameter which is ignored\n"); + if (m_screen_tag == nullptr) + osd_printf_error("Scanline timer has no screen specified\n"); + else if (dynamic_cast(siblingdevice(m_screen_tag)) == nullptr) + osd_printf_error("Scanline timer specifies nonexistent screen %s\n", m_screen_tag); // if (m_first_vpos < 0) // osd_printf_error("Scanline timer specified invalid initial position\n"); // if (m_increment < 0) @@ -103,7 +107,7 @@ void timer_device::device_start() { // fetch the screen if (m_screen_tag != nullptr) - m_screen = machine().device(m_screen_tag); + m_screen = siblingdevice(m_screen_tag); // allocate the timer m_timer = timer_alloc();