summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/screen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/screen.cpp')
-rw-r--r--src/emu/screen.cpp33
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();
}
}