From e05e355a1273c0384060f503836adac36129e13f Mon Sep 17 00:00:00 2001 From: angelosa Date: Thu, 17 Oct 2024 18:24:09 +0200 Subject: [PATCH] nec/pc9801_v.cpp: reverse attribute will draw opaque on Y char limit * fix daremo intro --- src/mame/nec/pc9801_v.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mame/nec/pc9801_v.cpp b/src/mame/nec/pc9801_v.cpp index e23f010421d..7d90180b0e5 100644 --- a/src/mame/nec/pc9801_v.cpp +++ b/src/mame/nec/pc9801_v.cpp @@ -96,6 +96,8 @@ void pc9801_state::draw_text(bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd, int scroll_end = scroll_start + m_txt_scroll_reg[5]; int scroll = m_txt_scroll_reg[3] % 20; int line = y / lr; + // TODO: accurate blink rate + const bool is_blink_rate = m_screen->frame_number() & 0x10; for(int x=0;xframe_number() & 0x10) + if(cursor_on && cursor_addr == tile_addr && is_blink_rate) tile_data^=0xff; - if(blink && m_screen->frame_number() & 0x10) + if(blink && is_blink_rate) tile_data = 0; if(reverse) { tile_data^=0xff; } int pen; + // daremo wants to mask during intro with reverse attribute only + // using color is a guess: may just be black. if(yi >= char_size) - pen = -1; + pen = reverse ? color : -1; else pen = (tile_data >> (7-xi) & 1) ? color : -1;