diff options
Diffstat (limited to 'src/emu/screen.cpp')
-rw-r--r-- | src/emu/screen.cpp | 33 |
1 files changed, 7 insertions, 26 deletions
diff --git a/src/emu/screen.cpp b/src/emu/screen.cpp index b4bdce1f45a..6434419c761 100644 --- a/src/emu/screen.cpp +++ b/src/emu/screen.cpp @@ -556,8 +556,7 @@ screen_device::screen_device(const machine_config &mconfig, const char *tag, dev m_xscale(1.0f), m_yscale(1.0f), m_screen_vblank(*this), - m_palette(nullptr), - m_palette_tag(nullptr), + m_palette(*this, finder_base::DUMMY_TAG), m_video_attributes(0), m_svg_region(nullptr), m_container(nullptr), @@ -631,23 +630,17 @@ void screen_device::device_validity_check(validity_checker &valid) const osd_printf_error("Invalid (zero) refresh rate\n"); texture_format texformat = !m_screen_update_ind16.isnull() ? TEXFORMAT_PALETTE16 : TEXFORMAT_RGB32; - if (m_palette_tag != nullptr) + if (m_palette != nullptr) { if (texformat == TEXFORMAT_RGB32) - osd_printf_warning("Screen does not need palette defined\n"); - - device_t *paldev = owner()->subdevice(m_palette_tag); - if (paldev == nullptr) - osd_printf_error("Nonexistent device '%s' specified as palette\n", m_palette_tag); - else { - device_palette_interface *palintf; - if (!paldev->interface(palintf)) - osd_printf_error("Device '%s' specified as palette, but it has no palette interface\n", m_palette_tag); + osd_printf_warning("Screen does not need palette defined\n"); } } else if (texformat == TEXFORMAT_PALETTE16) + { osd_printf_error("Screen does not have palette defined\n"); + } } @@ -664,21 +657,9 @@ void screen_device::device_resolve_objects() m_screen_update_rgb32.bind_relative_to(*owner()); m_screen_vblank.resolve_safe(); - // find the specified palette - if (m_palette_tag != nullptr && m_palette == nullptr) + // assign our format to the palette before it starts + if (m_palette) { - // find our palette as a sibling device - device_t *palette = owner()->subdevice(m_palette_tag); - if (palette == nullptr) - fatalerror("Screen '%s' specifies nonexistent device '%s' as palette\n", - tag(), - m_palette_tag); - if (!palette->interface(m_palette)) - fatalerror("Screen '%s' specifies device '%s' as palette, but it has no palette interface\n", - tag(), - m_palette_tag); - - // assign our format to the palette before it starts m_palette->m_format = format(); } } |