i8275: Fix underline-related row blanking; clean up a few more drivers (nw)

This commit is contained in:
AJR 2018-05-23 16:42:26 -04:00
parent 5c6ba408bc
commit 377d5326af
6 changed files with 4 additions and 12 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}