From 241b732ea75d8bc98bd8d0f48fb3ded3c911ad20 Mon Sep 17 00:00:00 2001 From: fulivi Date: Sun, 6 Mar 2016 16:32:29 +0100 Subject: [PATCH] hp9845: alpha video test "B" fixed --- src/mame/drivers/hp9845.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/hp9845.cpp b/src/mame/drivers/hp9845.cpp index 1387432ea85..4890b0ad92e 100644 --- a/src/mame/drivers/hp9845.cpp +++ b/src/mame/drivers/hp9845.cpp @@ -44,7 +44,10 @@ // Base address of video buffer #define VIDEO_BUFFER_BASE 0x17000 -#define MAX_WORD_PER_ROW 600 +// For test "B" of alpha video to succeed this must be < 234 +// Basically "B" test is designed to intentionally prevent line buffer to be filled so that display is blanked +// from 2nd row on. This in turn prevents "BAD" text to be visible on screen. +#define MAX_WORD_PER_ROW 220 #define VIDEO_CHAR_WIDTH 9 #define VIDEO_CHAR_HEIGHT 15 @@ -412,10 +415,14 @@ void hp9845b_state::video_render_buff(unsigned line_in_row, bool buff_idx) m_video_blanked = true; } - if (m_video_blanked) { - // TODO: blank scanline - } else { const rgb_t *palette = m_palette->palette()->entry_list_raw(); + + if (m_video_blanked) { + // Blank scanline + for (unsigned i = 0; i < (80 * 9); i++) { + m_bitmap.pix32(m_video_scanline , i) = palette[ 0 ]; + } + } else { bool cursor_line = line_in_row == 12; bool ul_line = line_in_row == 14; bool cursor_blink = BIT(m_video_frame , 3);