Attempt at fixing the Paradise VGA 640x480x8bpp mode in Windows 3.0.

This commit is contained in:
OBattler
2020-07-05 02:57:15 +02:00
parent b5d02a8039
commit db12ba4e91

View File

@@ -122,6 +122,7 @@ void paradise_out(uint16_t addr, uint8_t val, void *p)
{ {
svga->gdcreg[0xe] = val; svga->gdcreg[0xe] = val;
paradise_remap(paradise); paradise_remap(paradise);
svga_recalctimings(svga);
return; return;
} }
break; break;
@@ -251,9 +252,11 @@ void paradise_recalctimings(svga_t *svga)
if (paradise->type == WD90C30) if (paradise->type == WD90C30)
svga->interlace = (svga->crtc[0x2d] & 0x20); svga->interlace = (svga->crtc[0x2d] & 0x20);
svga->lowres = !(svga->gdcreg[0xe] & 0x01); if (svga->gdcreg[0xe] & 0x01) {
if (svga->bpp == 8 && !svga->lowres) svga->bpp = 8;
svga->lowres = 0;
svga->render = svga_render_8bpp_highres; svga->render = svga_render_8bpp_highres;
}
} }
static void paradise_write(uint32_t addr, uint8_t val, void *p) static void paradise_write(uint32_t addr, uint8_t val, void *p)