mirror of
https://github.com/holub/mame
synced 2025-06-29 15:38:53 +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
|
// resolve the palette for the sake of register_screen_bitmap
|
||||||
m_screen->resolve_palette();
|
m_screen->resolve_palette();
|
||||||
|
|
||||||
// no other palette may be specified
|
// no other palette may be specified (FIXME: breaks meritm.cpp)
|
||||||
if (m_screen->has_palette() && palintf != &m_screen->palette())
|
if (0 && 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());
|
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()
|
void k001604_device::device_start()
|
||||||
{
|
{
|
||||||
|
if (!palette().device().started())
|
||||||
|
throw device_missing_dependencies();
|
||||||
|
|
||||||
static const gfx_layout k001604_char_layout_layer_8x8 =
|
static const gfx_layout k001604_char_layout_layer_8x8 =
|
||||||
{
|
{
|
||||||
8, 8,
|
8, 8,
|
||||||
|
@ -33,6 +33,9 @@ k037122_device::k037122_device(const machine_config &mconfig, const char *tag, d
|
|||||||
|
|
||||||
void k037122_device::device_start()
|
void k037122_device::device_start()
|
||||||
{
|
{
|
||||||
|
if (!palette().device().started())
|
||||||
|
throw device_missing_dependencies();
|
||||||
|
|
||||||
static const gfx_layout k037122_char_layout =
|
static const gfx_layout k037122_char_layout =
|
||||||
{
|
{
|
||||||
8, 8,
|
8, 8,
|
||||||
|
@ -150,6 +150,9 @@ void k051316_device::set_bpp(device_t &device, int bpp)
|
|||||||
|
|
||||||
void k051316_device::device_start()
|
void k051316_device::device_start()
|
||||||
{
|
{
|
||||||
|
if (!palette().device().started())
|
||||||
|
throw device_missing_dependencies();
|
||||||
|
|
||||||
decode_gfx();
|
decode_gfx();
|
||||||
gfx(0)->set_colors(palette().entries() / gfx(0)->depth());
|
gfx(0)->set_colors(palette().entries() / gfx(0)->depth());
|
||||||
|
|
||||||
|
@ -184,6 +184,8 @@ void k051960_device::device_start()
|
|||||||
// make sure our screen is started
|
// make sure our screen is started
|
||||||
if (!m_screen->started())
|
if (!m_screen->started())
|
||||||
throw device_missing_dependencies();
|
throw device_missing_dependencies();
|
||||||
|
if (!palette().device().started())
|
||||||
|
throw device_missing_dependencies();
|
||||||
|
|
||||||
// allocate scanline timer and start at first scanline
|
// allocate scanline timer and start at first scanline
|
||||||
m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(k051960_device::scanline_callback), this));
|
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()
|
void k05324x_device::device_start()
|
||||||
{
|
{
|
||||||
|
if (!palette().device().started())
|
||||||
|
throw device_missing_dependencies();
|
||||||
|
|
||||||
/* decode the graphics */
|
/* decode the graphics */
|
||||||
decode_gfx();
|
decode_gfx();
|
||||||
gfx(0)->set_colors(palette().entries() / gfx(0)->depth());
|
gfx(0)->set_colors(palette().entries() / gfx(0)->depth());
|
||||||
|
@ -333,6 +333,9 @@ void k056832_device::finalize_init()
|
|||||||
|
|
||||||
void k056832_device::device_start()
|
void k056832_device::device_start()
|
||||||
{
|
{
|
||||||
|
if (!palette().device().started())
|
||||||
|
throw device_missing_dependencies();
|
||||||
|
|
||||||
memset(m_regs, 0x00, sizeof(m_regs) );
|
memset(m_regs, 0x00, sizeof(m_regs) );
|
||||||
memset(m_regsb, 0x00, sizeof(m_regsb) );
|
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()
|
void segas24_tile::device_start()
|
||||||
{
|
{
|
||||||
|
if (!palette().device().started())
|
||||||
|
throw device_missing_dependencies();
|
||||||
|
|
||||||
char_ram = std::make_unique<uint16_t[]>(0x80000/2);
|
char_ram = std::make_unique<uint16_t[]>(0x80000/2);
|
||||||
tile_ram = std::make_unique<uint16_t[]>(0x10000/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()
|
void st0020_device::device_start()
|
||||||
{
|
{
|
||||||
|
if (!palette().device().started())
|
||||||
|
throw device_missing_dependencies();
|
||||||
|
|
||||||
memory_region* rgn = memregion(tag());
|
memory_region* rgn = memregion(tag());
|
||||||
|
|
||||||
if (rgn)
|
if (rgn)
|
||||||
|
Loading…
Reference in New Issue
Block a user