Tandy: Slow down horizontal sync in low resolution modes.
This commit is contained in:
@@ -718,8 +718,13 @@ recalc_timings(tandy_t *dev)
|
|||||||
double _dispofftime;
|
double _dispofftime;
|
||||||
double disptime;
|
double disptime;
|
||||||
|
|
||||||
disptime = vid->crtc[0] + 1;
|
if (vid->mode & 1) {
|
||||||
_dispontime = vid->crtc[1];
|
disptime = vid->crtc[0] + 1;
|
||||||
|
_dispontime = vid->crtc[1];
|
||||||
|
} else {
|
||||||
|
disptime = (vid->crtc[0] + 1) << 1;
|
||||||
|
_dispontime = vid->crtc[1] << 1;
|
||||||
|
}
|
||||||
|
|
||||||
_dispofftime = disptime - _dispontime;
|
_dispofftime = disptime - _dispontime;
|
||||||
_dispontime *= CGACONST;
|
_dispontime *= CGACONST;
|
||||||
@@ -795,7 +800,10 @@ vid_out(uint16_t addr, uint8_t val, void *priv)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x03d8:
|
case 0x03d8:
|
||||||
|
old = vid->mode;
|
||||||
vid->mode = val;
|
vid->mode = val;
|
||||||
|
if ((old ^ val) & 0x01)
|
||||||
|
recalc_timings(dev);
|
||||||
if (!dev->is_sl2)
|
if (!dev->is_sl2)
|
||||||
update_cga16_color(vid->mode);
|
update_cga16_color(vid->mode);
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user