Mystique fixes :
- MGA mode disables all VGA data processing on reads / writes - MGA mode forces 8 pixels per character - DMAPAD acts as an ILOAD mirror during ILOAD operations, same as SRCx - Handle signed X coordinates better in blit operations - Add more MMIO registers - Don't fatal on ILOAD reads when blitter not busy Fixes Windows XP with Mystique.
This commit is contained in:
parent
e6949e7599
commit
b72aa2117b
3 changed files with 189 additions and 29 deletions
|
|
@ -418,13 +418,14 @@ void svga_recalctimings(svga_t *svga)
|
|||
|
||||
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);
|
||||
|
||||
if (svga->vblankstart < svga->dispend)
|
||||
svga->dispend = svga->vblankstart;
|
||||
|
||||
crtcconst = (svga->seqregs[1] & 1) ? (svga->clock * 8.0) : (svga->clock * 9.0);
|
||||
crtcconst = svga->clock * svga->char_width;
|
||||
|
||||
disptime = svga->htotal;
|
||||
_dispontime = svga->hdisp_time;
|
||||
|
|
@ -670,7 +671,7 @@ void svga_poll(void *p)
|
|||
// pclog("%i %i %i\n", svga->video_res_x, svga->video_res_y, svga->lowres);
|
||||
if (!(svga->gdcreg[6] & 1) && !(svga->attrregs[0x10] & 1)) /*Text mode*/
|
||||
{
|
||||
svga->video_res_x /= (svga->seqregs[1] & 1) ? 8 : 9;
|
||||
svga->video_res_x /= svga->char_width;
|
||||
svga->video_res_y /= (svga->crtc[9] & 31) + 1;
|
||||
svga->video_bpp = 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue