mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
Palette device fixes (nw)
- Enforce dependencies in various Konami, Sega & Seta GFX devices - Disable palette uniqueness check in divideo
This commit is contained in:
parent
0eebf8c69c
commit
cb68159154
@ -137,9 +137,9 @@ void device_video_interface::interface_pre_start()
|
||||
// resolve the palette for the sake of register_screen_bitmap
|
||||
m_screen->resolve_palette();
|
||||
|
||||
// no other palette may be specified
|
||||
if (m_screen->has_palette() && palintf != &m_screen->palette())
|
||||
throw emu_fatalerror("Device '%s' cannot control screen '%s' with palette '%s'", m_screen_tag, device().tag(), m_screen->palette().device().tag());
|
||||
// no other palette may be specified (FIXME: breaks meritm.cpp)
|
||||
if (0 && m_screen->has_palette() && palintf != &m_screen->palette())
|
||||
throw emu_fatalerror("Device '%s' cannot control screen '%s' with palette '%s'", device().tag(), m_screen_tag, m_screen->palette().device().tag());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,6 +37,9 @@ k001604_device::k001604_device(const machine_config &mconfig, const char *tag, d
|
||||
|
||||
void k001604_device::device_start()
|
||||
{
|
||||
if (!palette().device().started())
|
||||
throw device_missing_dependencies();
|
||||
|
||||
static const gfx_layout k001604_char_layout_layer_8x8 =
|
||||
{
|
||||
8, 8,
|
||||
|
@ -33,6 +33,9 @@ k037122_device::k037122_device(const machine_config &mconfig, const char *tag, d
|
||||
|
||||
void k037122_device::device_start()
|
||||
{
|
||||
if (!palette().device().started())
|
||||
throw device_missing_dependencies();
|
||||
|
||||
static const gfx_layout k037122_char_layout =
|
||||
{
|
||||
8, 8,
|
||||
|
@ -150,6 +150,9 @@ void k051316_device::set_bpp(device_t &device, int bpp)
|
||||
|
||||
void k051316_device::device_start()
|
||||
{
|
||||
if (!palette().device().started())
|
||||
throw device_missing_dependencies();
|
||||
|
||||
decode_gfx();
|
||||
gfx(0)->set_colors(palette().entries() / gfx(0)->depth());
|
||||
|
||||
|
@ -184,6 +184,8 @@ void k051960_device::device_start()
|
||||
// make sure our screen is started
|
||||
if (!m_screen->started())
|
||||
throw device_missing_dependencies();
|
||||
if (!palette().device().started())
|
||||
throw device_missing_dependencies();
|
||||
|
||||
// allocate scanline timer and start at first scanline
|
||||
m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(k051960_device::scanline_callback), this));
|
||||
|
@ -118,6 +118,9 @@ void k05324x_device::set_bpp(device_t &device, int bpp)
|
||||
|
||||
void k05324x_device::device_start()
|
||||
{
|
||||
if (!palette().device().started())
|
||||
throw device_missing_dependencies();
|
||||
|
||||
/* decode the graphics */
|
||||
decode_gfx();
|
||||
gfx(0)->set_colors(palette().entries() / gfx(0)->depth());
|
||||
|
@ -333,6 +333,9 @@ void k056832_device::finalize_init()
|
||||
|
||||
void k056832_device::device_start()
|
||||
{
|
||||
if (!palette().device().started())
|
||||
throw device_missing_dependencies();
|
||||
|
||||
memset(m_regs, 0x00, sizeof(m_regs) );
|
||||
memset(m_regsb, 0x00, sizeof(m_regsb) );
|
||||
|
||||
|
@ -77,6 +77,9 @@ TILE_GET_INFO_MEMBER(segas24_tile::tile_info_1w)
|
||||
|
||||
void segas24_tile::device_start()
|
||||
{
|
||||
if (!palette().device().started())
|
||||
throw device_missing_dependencies();
|
||||
|
||||
char_ram = std::make_unique<uint16_t[]>(0x80000/2);
|
||||
tile_ram = std::make_unique<uint16_t[]>(0x10000/2);
|
||||
|
||||
|
@ -52,6 +52,9 @@ static const gfx_layout layout_16x8x8_2 =
|
||||
|
||||
void st0020_device::device_start()
|
||||
{
|
||||
if (!palette().device().started())
|
||||
throw device_missing_dependencies();
|
||||
|
||||
memory_region* rgn = memregion(tag());
|
||||
|
||||
if (rgn)
|
||||
|
Loading…
Reference in New Issue
Block a user