summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-01-22 12:27:52 -0500
committer AJR <ajrhacker@users.noreply.github.com>2018-01-22 13:38:35 -0500
commit996d54cf43e52832203e17446f521d6ec338c2c3 (patch)
tree68b1f2be12bc00a9f4b3ea37cd6419ca9d543c11
parent5c6a074260a954e5101487e8d94b7ab81fdfca60 (diff)
tv912.cpp: Improve half-dot shifting (nw)
-rw-r--r--src/mame/drivers/tv912.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/mame/drivers/tv912.cpp b/src/mame/drivers/tv912.cpp
index 7999d3474c1..1d40607b2e2 100644
--- a/src/mame/drivers/tv912.cpp
+++ b/src/mame/drivers/tv912.cpp
@@ -258,6 +258,12 @@ void tv912_state::device_timer(emu_timer &timer, device_timer_id id, int param,
u32 tv912_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
+ if (m_crtc->screen_reset())
+ {
+ bitmap.fill(rgb_t::black(), cliprect);
+ return 0;
+ }
+
u8 *dispram = static_cast<u8 *>(m_dispram_bank->base());
ioport_value videoctrl = m_video_control->read();
@@ -281,7 +287,7 @@ u32 tv912_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, cons
u8 data = (ra > 0 && ra < 9) ? charbase[(ch & 0x7f) << 3] : 0;
u8 dots = data >> 2;
- bool adv = BIT(data, 0);
+ bool adv = BIT(data, 1);
for (int d = 0; d < 7; d++)
{
@@ -296,8 +302,8 @@ u32 tv912_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, cons
if (!adv)
dots <<= 1;
- if (d == 3)
- adv = BIT(data, 1);
+ if (d == 2)
+ adv = BIT(data, 0);
}
}
}