diff --git a/src/vid_svga.c b/src/vid_svga.c index b881dd0..f6890a9 100644 --- a/src/vid_svga.c +++ b/src/vid_svga.c @@ -339,6 +339,8 @@ void svga_recalctimings(svga_t *svga) svga->ma_latch = ((svga->crtc[0xc] << 8) | svga->crtc[0xd]) + ((svga->crtc[8] & 0x60) >> 5); svga->ca_adj = 0; + svga->rowcount = svga->crtc[9] & 31; + svga->hdisp_time = svga->hdisp; svga->render = svga_render_blank; if (!svga->scrblank && svga->attr_palette_enable) @@ -418,7 +420,6 @@ void svga_recalctimings(svga_t *svga) // pclog("svga_render %08X : %08X %08X %08X %08X %08X %i %i %02X %i %i\n", svga_render, svga_render_text_40, svga_render_text_80, svga_render_8bpp_lowres, svga_render_8bpp_highres, svga_render_blank, scrblank,gdcreg[6]&1,gdcreg[5]&0x60,bpp,seqregs[1]&8); svga->linedbl = svga->crtc[9] & 0x80; - svga->rowcount = svga->crtc[9] & 31; svga->char_width = (svga->seqregs[1] & 1) ? 8 : 9; if (svga->recalctimings_ex) svga->recalctimings_ex(svga); diff --git a/src/vid_voodoo_banshee.c b/src/vid_voodoo_banshee.c index 697dccd..c6df176 100644 --- a/src/vid_voodoo_banshee.c +++ b/src/vid_voodoo_banshee.c @@ -409,6 +409,10 @@ static void banshee_recalctimings(svga_t *svga) default: fatal("Unknown pixel format %08x\n", banshee->vgaInit0); } + if (!(banshee->vidProcCfg & VIDPROCCFG_DESKTOP_TILE) && (banshee->vidProcCfg & VIDPROCCFG_HALF_MODE)) + svga->rowcount = 1; + else + svga->rowcount = 0; if (banshee->vidProcCfg & VIDPROCCFG_DESKTOP_TILE) svga->rowoffset = ((banshee->vidDesktopOverlayStride & 0x3fff) * 128) >> 3; else