From 2cc2537cd355a255b7b65b162551fb7d4eaf2246 Mon Sep 17 00:00:00 2001 From: cracyc Date: Mon, 26 May 2014 14:27:21 +0000 Subject: [PATCH] dwarfd: fill gaps in tiles (nw) --- src/mame/drivers/dwarfd.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c index 4da4f150577..7301d59c618 100644 --- a/src/mame/drivers/dwarfd.c +++ b/src/mame/drivers/dwarfd.c @@ -315,6 +315,7 @@ public: /* video-related */ int m_crt_access; + bool m_back_color; /* memory */ UINT8 m_dw_ram[0x1000]; @@ -574,6 +575,8 @@ I8275_DRAW_CHARACTER_MEMBER(dwarfd_state::display_pixels) int bank = ((gpa & 2) ? 0 : 4) + (gpa & 1) + ((m_dsw2->read() & 4) >> 1); const rgb_t *palette = m_palette->palette()->entry_list_raw(); UINT16 pixels = m_charmap->u16((linecount & 7) + ((charcode + (bank * 128)) << 3)); + if(!x) + m_back_color = false; //if(!linecount) // logerror("%d %d %02x %02x %02x %02x %02x %02x %02x\n", x/8, y/8, charcode, lineattr, lten, rvv, vsp, gpa, hlgt); @@ -584,6 +587,9 @@ I8275_DRAW_CHARACTER_MEMBER(dwarfd_state::display_pixels) UINT8 value = (pixel >> 1) | (rvv << 3) | (vsp << 4); bitmap.pix32(y, x + i) = palette[value]; bitmap.pix32(y, x + i + 1) = palette[(pixel & 1) ? 0 : value]; + if(m_back_color) + bitmap.pix32(y, x + i - 1) = palette[value]; + m_back_color = pixel & 1; } } @@ -593,6 +599,8 @@ I8275_DRAW_CHARACTER_MEMBER(dwarfd_state::qc_display_pixels) int bank = gpa; const rgb_t *palette = m_palette->palette()->entry_list_raw(); UINT16 pixels = m_charmap->u16((linecount & 7) + ((charcode + (bank * 128)) << 3)); + if(!x) + m_back_color = false; //if(!linecount) // logerror("%d %d %02x %02x %02x %02x %02x %02x %02x\n", x/8, y/8, charcode, lineattr, lten, rvv, vsp, gpa, hlgt); @@ -603,6 +611,9 @@ I8275_DRAW_CHARACTER_MEMBER(dwarfd_state::qc_display_pixels) UINT8 value = (pixel >> 1) | (rvv << 3) | (vsp << 4); bitmap.pix32(y, x + i) = palette[value]; bitmap.pix32(y, x + i + 1) = palette[(pixel & 1) ? 0 : value]; + if(m_back_color) + bitmap.pix32(y, x + i - 1) = palette[value]; + m_back_color = pixel & 1; } } @@ -751,6 +762,7 @@ void dwarfd_state::machine_start() void dwarfd_state::machine_reset() { m_crt_access = 0; + m_back_color = false; } static MACHINE_CONFIG_START( dwarfd, dwarfd_state )