x68k: color 0 is only transparent if the crtc is not set for 16bit color mode

This commit is contained in:
cracyc 2021-06-26 14:20:33 -05:00
parent 499399bdcd
commit cd8d2a8050
2 changed files with 2 additions and 1 deletions

View File

@ -212,7 +212,7 @@ void x68k_state::draw_text(bitmap_rgb32 &bitmap, int xscr, int yscr, rectangle r
+ (((m_tvram[loc+0x20000] >> bit) & 0x01) ? 4 : 0)
+ (((m_tvram[loc+0x30000] >> bit) & 0x01) ? 8 : 0);
// Colour 0 is displayable if the text layer is at the priority level 2
if((colour && (m_pcgpalette->pen(colour) & 0xffffff)) || ((m_video.reg[1] & 0x0c00) == 0x0800))
if(((colour || (m_crtc->gfx_color_mode() == 3)) && (m_pcgpalette->pen(colour) & 0xffffff)) || ((m_video.reg[1] & 0x0c00) == 0x0800))
bitmap.pix(line, pixel) = m_pcgpalette->pen(colour);
bit--;
if(bit < 0)

View File

@ -41,6 +41,7 @@ public:
bool is_1024x1024() const { return BIT(m_reg[20], 10); }
bool gfx_double_scan() const { return (m_reg[20] & 0x1e) == 0x10; }
bool gfx_layer_buffer() const { return BIT(m_reg[20], 11); }
u8 gfx_color_mode() const { return (m_reg[20] >> 8) & 3; }
bool text_layer_buffer() const { return BIT(m_reg[20], 12); }
u16 hbegin() const { return m_hbegin; }
u16 vbegin() const { return m_vbegin; }