summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/bus/nubus/nubus_specpdq.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/bus/nubus/nubus_specpdq.c')
-rw-r--r--src/emu/bus/nubus/nubus_specpdq.c48
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)
{