Implement Banshee half mode on non-tiled surfaces. Fixes low res VESA
modes.
This commit is contained in:
parent
d6bf0baed0
commit
5c20fe7c57
2 changed files with 6 additions and 1 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue