Merge pull request #3893 from iamgreaser/gm/mga-8bpp-blink-disable
Disable blink in 8bpp modes on MGA; Re-instate main 8bpp hires renderer
This commit is contained in:
@@ -246,6 +246,11 @@ typedef struct svga_t {
|
||||
addresses are shifted to match*/
|
||||
int packed_chain4;
|
||||
|
||||
/*Disable 8bpp blink mode - some cards support it, some don't, it's a weird mode
|
||||
If mode 13h appears in a reddish-brown background (0x88) with dark green text (0x8F),
|
||||
you should set this flag when entering that mode*/
|
||||
int disable_blink;
|
||||
|
||||
/*Force CRTC to dword mode, regardless of CR14/CR17. Required for S3 enhanced mode*/
|
||||
int force_dword_mode;
|
||||
|
||||
|
@@ -935,7 +935,7 @@ mystique_recalctimings(svga_t *svga)
|
||||
} else {
|
||||
switch (svga->bpp) {
|
||||
case 8:
|
||||
svga->render = svga_render_8bpp_incompatible_highres;
|
||||
svga->render = svga_render_8bpp_highres;
|
||||
break;
|
||||
case 15:
|
||||
svga->render = svga_render_15bpp_highres;
|
||||
@@ -958,6 +958,8 @@ mystique_recalctimings(svga_t *svga)
|
||||
if (mystique->type >= MGA_1064SG)
|
||||
svga->bpp = 8;
|
||||
}
|
||||
|
||||
svga->disable_blink = (svga->bpp > 4);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -457,7 +457,7 @@ svga_render_indexed_gfx(svga_t *svga, bool highres, bool combine8bits)
|
||||
uint32_t changed_offset;
|
||||
|
||||
const bool blinked = svga->blink & 0x10;
|
||||
const bool attrblink = ((svga->attrregs[0x10] & 0x08) != 0);
|
||||
const bool attrblink = (!svga->disable_blink) && ((svga->attrregs[0x10] & 0x08) != 0);
|
||||
|
||||
/*
|
||||
The following is likely how it works on an IBM VGA - that is, it works with its BIOS.
|
||||
|
Reference in New Issue
Block a user