diff options
Diffstat (limited to 'src/emu/bus/nubus/nubus_specpdq.c')
-rw-r--r-- | src/emu/bus/nubus/nubus_specpdq.c | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/src/emu/bus/nubus/nubus_specpdq.c b/src/emu/bus/nubus/nubus_specpdq.c index 71afcfa463a..c0db4c01ac7 100644 --- a/src/emu/bus/nubus/nubus_specpdq.c +++ b/src/emu/bus/nubus/nubus_specpdq.c @@ -37,6 +37,8 @@ MACHINE_CONFIG_FRAGMENT( specpdq ) MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480) MCFG_SCREEN_SIZE(1280,1024) MCFG_SCREEN_VISIBLE_AREA(0, 1152-1, 0, 844-1) + + MCFG_PALETTE_ADD("palette", 256) MACHINE_CONFIG_END ROM_START( specpdq ) @@ -82,7 +84,8 @@ nubus_specpdq_device::nubus_specpdq_device(const machine_config &mconfig, const device_t(mconfig, NUBUS_SPECPDQ, "SuperMac Spectrum PDQ video card", tag, owner, clock, "nb_spdq", __FILE__), device_video_interface(mconfig, *this), device_nubus_card_interface(mconfig, *this), - m_assembled_tag(tag, ":", SPECPDQ_SCREEN_NAME) + m_assembled_tag(tag, ":", SPECPDQ_SCREEN_NAME), + m_palette(*this, "palette") { m_screen_tag = m_assembled_tag; } @@ -91,7 +94,8 @@ nubus_specpdq_device::nubus_specpdq_device(const machine_config &mconfig, device device_t(mconfig, type, name, tag, owner, clock, shortname, source), device_video_interface(mconfig, *this), device_nubus_card_interface(mconfig, *this), - m_assembled_tag(tag, ":", SPECPDQ_SCREEN_NAME) + m_assembled_tag(tag, ":", SPECPDQ_SCREEN_NAME), + m_palette(*this, "palette") { m_screen_tag = m_assembled_tag; } @@ -132,10 +136,10 @@ void nubus_specpdq_device::device_reset() m_vbl_disable = 1; m_mode = 0; memset(m_vram, 0, VRAM_SIZE); - memset(m_palette, 0, sizeof(m_palette)); + memset(m_palette_val, 0, sizeof(m_palette_val)); - m_palette[0] = rgb_t(255, 255, 255); - m_palette[0x80] = rgb_t(0, 0, 0); + m_palette_val[0] = rgb_t(255, 255, 255); + m_palette_val[0x80] = rgb_t(0, 0, 0); } @@ -174,14 +178,14 @@ UINT32 nubus_specpdq_device::screen_update(screen_device &screen, bitmap_rgb32 & { pixels = vram[(y * 512) + (BYTE4_XOR_BE(x))]; - *scanline++ = m_palette[(pixels&0x80)]; - *scanline++ = m_palette[((pixels<<1)&0x80)]; - *scanline++ = m_palette[((pixels<<2)&0x80)]; - *scanline++ = m_palette[((pixels<<3)&0x80)]; - *scanline++ = m_palette[((pixels<<4)&0x80)]; - *scanline++ = m_palette[((pixels<<5)&0x80)]; - *scanline++ = m_palette[((pixels<<6)&0x80)]; - *scanline++ = m_palette[((pixels<<7)&0x80)]; + *scanline++ = m_palette_val[(pixels&0x80)]; + *scanline++ = m_palette_val[((pixels<<1)&0x80)]; + *scanline++ = m_palette_val[((pixels<<2)&0x80)]; + *scanline++ = m_palette_val[((pixels<<3)&0x80)]; + *scanline++ = m_palette_val[((pixels<<4)&0x80)]; + *scanline++ = m_palette_val[((pixels<<5)&0x80)]; + *scanline++ = m_palette_val[((pixels<<6)&0x80)]; + *scanline++ = m_palette_val[((pixels<<7)&0x80)]; } } break; @@ -194,10 +198,10 @@ UINT32 nubus_specpdq_device::screen_update(screen_device &screen, bitmap_rgb32 & { pixels = vram[(y * 512) + (BYTE4_XOR_BE(x))]; - *scanline++ = m_palette[(pixels&0xc0)]; - *scanline++ = m_palette[((pixels<<2)&0xc0)]; - *scanline++ = m_palette[((pixels<<4)&0xc0)]; - *scanline++ = m_palette[((pixels<<6)&0xc0)]; + *scanline++ = m_palette_val[(pixels&0xc0)]; + *scanline++ = m_palette_val[((pixels<<2)&0xc0)]; + *scanline++ = m_palette_val[((pixels<<4)&0xc0)]; + *scanline++ = m_palette_val[((pixels<<6)&0xc0)]; } } break; @@ -211,8 +215,8 @@ UINT32 nubus_specpdq_device::screen_update(screen_device &screen, bitmap_rgb32 & { pixels = vram[(y * 1024) + (BYTE4_XOR_BE(x))]; - *scanline++ = m_palette[(pixels&0xf0)]; - *scanline++ = m_palette[((pixels<<4)&0xf0)]; + *scanline++ = m_palette_val[(pixels&0xf0)]; + *scanline++ = m_palette_val[((pixels<<4)&0xf0)]; } } break; @@ -225,7 +229,7 @@ UINT32 nubus_specpdq_device::screen_update(screen_device &screen, bitmap_rgb32 & for (x = 0; x < 1152; x++) { pixels = vram[(y * 1152) + (BYTE4_XOR_BE(x))]; - *scanline++ = m_palette[pixels]; + *scanline++ = m_palette_val[pixels]; } } break; @@ -297,8 +301,8 @@ WRITE32_MEMBER( nubus_specpdq_device::specpdq_w ) if (m_count == 3) { // printf("RAMDAC: color %d = %02x %02x %02x (PC=%x)\n", m_clutoffs, m_colors[0], m_colors[1], m_colors[2], space.device().safe_pc() ); - palette_set_color(space.machine(), m_clutoffs, rgb_t(m_colors[0], m_colors[1], m_colors[2])); - m_palette[m_clutoffs] = rgb_t(m_colors[0], m_colors[1], m_colors[2]); + m_palette->set_pen_color(m_clutoffs, rgb_t(m_colors[0], m_colors[1], m_colors[2])); + m_palette_val[m_clutoffs] = rgb_t(m_colors[0], m_colors[1], m_colors[2]); m_clutoffs++; if (m_clutoffs > 255) { |