summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-05-23 16:42:26 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-05-23 16:42:26 -0400
commit377d5326afd4881f0dd4e1a9a2c0802980fefc98 (patch)
tree0b069dac610c1762b0629a8d7dda8478c59b571e
parent5c6ba408bc56cc8b5d9cee6bd684fe4e1ff5671e (diff)
i8275: Fix underline-related row blanking; clean up a few more drivers (nw)
-rw-r--r--src/devices/video/i8275.cpp5
-rw-r--r--src/mame/drivers/apogee.cpp2
-rw-r--r--src/mame/drivers/imds2.cpp2
-rw-r--r--src/mame/drivers/mikrosha.cpp2
-rw-r--r--src/mame/drivers/unior.cpp3
-rw-r--r--src/mame/machine/radio86.cpp2
6 files changed, 4 insertions, 12 deletions
diff --git a/src/devices/video/i8275.cpp b/src/devices/video/i8275.cpp
index 96484294ece..cd035f8fa54 100644
--- a/src/devices/video/i8275.cpp
+++ b/src/devices/video/i8275.cpp
@@ -329,7 +329,8 @@ void i8275_device::device_timer(emu_timer &timer, device_timer_id id, int param,
if ((m_status & ST_VE) && m_scanline < m_vrtc_scanline)
{
int line_counter = OFFSET_LINE_COUNTER ? ((lc - 1) % SCANLINES_PER_ROW) : lc;
- bool end_of_row = (UNDERLINE >= 8) && ((lc == 0) || (lc == SCANLINES_PER_ROW - 1));
+ bool end_of_row = false;
+ bool blank_row = (UNDERLINE >= 8) && ((lc == 0) || (lc == SCANLINES_PER_ROW - 1));
int fifo_idx = 0;
m_hlgt = (m_stored_attr & FAC_H) ? 1 : 0;
m_vsp = (m_stored_attr & FAC_B) ? 1 : 0;
@@ -443,7 +444,7 @@ void i8275_device::device_timer(emu_timer &timer, device_timer_id id, int param,
}
}
- if (end_of_row || m_end_of_screen)
+ if (blank_row || end_of_row || m_end_of_screen)
{
vsp = 1;
}
diff --git a/src/mame/drivers/apogee.cpp b/src/mame/drivers/apogee.cpp
index 44b8bd4b2fb..d602192eb47 100644
--- a/src/mame/drivers/apogee.cpp
+++ b/src/mame/drivers/apogee.cpp
@@ -179,8 +179,6 @@ I8275_DRAW_CHARACTER_MEMBER(apogee_state::display_pixels)
const rgb_t *palette = m_palette->palette()->entry_list_raw();
const uint8_t *charmap = m_charmap + (gpa & 1) * 0x400;
uint8_t pixels = charmap[(linecount & 7) + (charcode << 3)] ^ 0xff;
- if(linecount == 8)
- pixels = 0;
if (vsp) {
pixels = 0;
}
diff --git a/src/mame/drivers/imds2.cpp b/src/mame/drivers/imds2.cpp
index 91d1cd56c35..87ab54fea92 100644
--- a/src/mame/drivers/imds2.cpp
+++ b/src/mame/drivers/imds2.cpp
@@ -525,7 +525,7 @@ I8275_DRAW_CHARACTER_MEMBER(imds2_state::crtc_display_pixels)
if (lten) {
pixels = ~0;
} else if (vsp != 0 || (linecount & 8) != 0) {
- pixels = 0;
+ pixels = 0; // VSP is gated with LC3
} else {
// See [2], pg 58 for the very peculiar way of generating character images
// Here each half-pixel is translated into a full pixel
diff --git a/src/mame/drivers/mikrosha.cpp b/src/mame/drivers/mikrosha.cpp
index 2b578241d3c..a8ffef44475 100644
--- a/src/mame/drivers/mikrosha.cpp
+++ b/src/mame/drivers/mikrosha.cpp
@@ -171,8 +171,6 @@ I8275_DRAW_CHARACTER_MEMBER(mikrosha_state::display_pixels)
const rgb_t *palette = m_palette->palette()->entry_list_raw();
const uint8_t *charmap = m_charmap + (m_mikrosha_font_page & 1) * 0x400;
uint8_t pixels = charmap[(linecount & 7) + (charcode << 3)] ^ 0xff;
- if(linecount == 8)
- pixels = 0;
if (vsp) {
pixels = 0;
}
diff --git a/src/mame/drivers/unior.cpp b/src/mame/drivers/unior.cpp
index 6ac1a62d3ac..aaedeb1cfd4 100644
--- a/src/mame/drivers/unior.cpp
+++ b/src/mame/drivers/unior.cpp
@@ -266,9 +266,6 @@ I8275_DRAW_CHARACTER_MEMBER(unior_state::display_pixels)
const rgb_t *palette = m_palette->palette()->entry_list_raw();
uint8_t gfx = m_p_chargen[(linecount & 7) | (charcode << 3)];
- if(linecount == 8)
- gfx = 0;
-
if (vsp)
gfx = 0;
diff --git a/src/mame/machine/radio86.cpp b/src/mame/machine/radio86.cpp
index 2cfbd396880..da181dac71d 100644
--- a/src/mame/machine/radio86.cpp
+++ b/src/mame/machine/radio86.cpp
@@ -202,8 +202,6 @@ I8275_DRAW_CHARACTER_MEMBER(radio86_state::display_pixels)
const rgb_t *palette = m_palette->palette()->entry_list_raw();
const uint8_t *charmap = m_charmap;
uint8_t pixels = charmap[(linecount & 7) + (charcode << 3)] ^ 0xff;
- if(linecount == 8)
- pixels = 0;
if (vsp) {
pixels = 0;
}