Disabled greatpsycho's (S)VGA clock skew in some situations, fixes #789 (needs a proper fix, but this will do as a band-aid).

This commit is contained in:
OBattler
2020-12-18 18:09:59 +01:00
parent 0476e284cf
commit 0ef52c4762
3 changed files with 5 additions and 1 deletions

View File

@@ -22,6 +22,7 @@
#define FLAG_ADDR_BY8 2
#define FLAG_EXT_WRITE 4
#define FLAG_LATCH8 8
#define FLAG_NOSKEW 16
typedef struct {

View File

@@ -1312,6 +1312,7 @@ void *et4000w32p_init(const device_t *info)
et4000->svga.clock_gen = et4000->svga.ramdac;
et4000->svga.getclock = stg_getclock;
et4000->svga.adv_flags |= FLAG_NOSKEW;
break;
case ET4000W32_DIAMOND:

View File

@@ -445,7 +445,7 @@ svga_recalctimings(svga_t *svga)
svga->interlace = 0;
svga->ma_latch = ((svga->crtc[0xc] << 8) | svga->crtc[0xd]) + ((svga->crtc[8] & 0x60) >> 5);
svga->ma_latch = ((svga->crtc[0xc] << 8) | svga->crtc[0xd]);
svga->ca_adj = 0;
svga->rowcount = svga->crtc[9] & 31;
@@ -459,6 +459,8 @@ svga_recalctimings(svga_t *svga)
svga->hdisp *= (svga->seqregs[1] & 1) ? 16 : 18;
} else {
svga->render = svga_render_text_80;
if (!(svga->adv_flags & FLAG_NOSKEW))
svga->ma_latch += ((svga->crtc[8] & 0x60) >> 5);
svga->hdisp *= (svga->seqregs[1] & 1) ? 8 : 9;
}
svga->hdisp_old = svga->hdisp;