Merge branch 'master' of https://github.com/86Box/86Box
This commit is contained in:
@@ -2940,9 +2940,11 @@ rect_fill:
|
|||||||
} else {
|
} else {
|
||||||
while (count-- && dev->accel.sy >= 0) {
|
while (count-- && dev->accel.sy >= 0) {
|
||||||
if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) {
|
if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) {
|
||||||
switch ((mix_dat & mix_mask) ? frgd_mix : bkgd_mix) {
|
switch (frgd_mix) {
|
||||||
case 0:
|
case 0:
|
||||||
src_dat = bkgd_color;
|
src_dat = bkgd_color;
|
||||||
|
if (!bkgd_mix && (dev->accel.cmd & 0x40) && ((dev->accel.frgd_mix & 0x1f) == 7) && ((dev->accel.bkgd_mix & 0x1f) == 3) && !dev->bpp && (bkgd_color == 0x00)) /*For some reason, the September 1992 Mach8/32 drivers for Win3.x don't set the background colors properly.*/
|
||||||
|
src_dat = frgd_color;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
src_dat = frgd_color;
|
src_dat = frgd_color;
|
||||||
@@ -2962,7 +2964,7 @@ rect_fill:
|
|||||||
|
|
||||||
if ((compare_mode == 0) || ((compare_mode == 0x10) && (dest_dat >= compare)) || ((compare_mode == 0x18) && (dest_dat < compare)) || ((compare_mode == 0x20) && (dest_dat != compare)) || ((compare_mode == 0x28) && (dest_dat == compare)) || ((compare_mode == 0x30) && (dest_dat <= compare)) || ((compare_mode == 0x38) && (dest_dat > compare))) {
|
if ((compare_mode == 0) || ((compare_mode == 0x10) && (dest_dat >= compare)) || ((compare_mode == 0x18) && (dest_dat < compare)) || ((compare_mode == 0x20) && (dest_dat != compare)) || ((compare_mode == 0x28) && (dest_dat == compare)) || ((compare_mode == 0x30) && (dest_dat <= compare)) || ((compare_mode == 0x38) && (dest_dat > compare))) {
|
||||||
old_dest_dat = dest_dat;
|
old_dest_dat = dest_dat;
|
||||||
MIX(mix_dat & mix_mask, dest_dat, src_dat);
|
MIX(1, dest_dat, src_dat);
|
||||||
dest_dat = (dest_dat & wrt_mask) | (old_dest_dat & ~wrt_mask);
|
dest_dat = (dest_dat & wrt_mask) | (old_dest_dat & ~wrt_mask);
|
||||||
WRITE(dev->accel.dest + dev->accel.cx, dest_dat);
|
WRITE(dev->accel.dest + dev->accel.cx, dest_dat);
|
||||||
}
|
}
|
||||||
@@ -3740,7 +3742,7 @@ bitblt:
|
|||||||
case 3:
|
case 3:
|
||||||
READ(dev->accel.src + dev->accel.cx, src_dat);
|
READ(dev->accel.src + dev->accel.cx, src_dat);
|
||||||
if (pixcntl == 3) {
|
if (pixcntl == 3) {
|
||||||
if (dev->accel.cmd & 0x10) {
|
if ((dev->accel.cmd & 0x10) && !(dev->accel.cmd & 0x40)) {
|
||||||
src_dat = ((src_dat & rd_mask) == rd_mask);
|
src_dat = ((src_dat & rd_mask) == rd_mask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -3628,7 +3628,9 @@ mach_accel_out(uint16_t port, uint8_t val, mach_t *mach)
|
|||||||
case 0x6e8:
|
case 0x6e8:
|
||||||
case 0x6e9:
|
case 0x6e9:
|
||||||
if (!(port & 1)) {
|
if (!(port & 1)) {
|
||||||
dev->hdisp = val;
|
if (!dev->on[0] || !dev->on[1])
|
||||||
|
dev->hdisp = val;
|
||||||
|
|
||||||
mach_log("ATI 8514/A: H_DISP write 06E8 = %d\n", dev->hdisp + 1);
|
mach_log("ATI 8514/A: H_DISP write 06E8 = %d\n", dev->hdisp + 1);
|
||||||
}
|
}
|
||||||
svga_recalctimings(svga);
|
svga_recalctimings(svga);
|
||||||
@@ -3653,8 +3655,10 @@ mach_accel_out(uint16_t port, uint8_t val, mach_t *mach)
|
|||||||
|
|
||||||
case 0x16e8:
|
case 0x16e8:
|
||||||
case 0x16e9:
|
case 0x16e9:
|
||||||
WRITE8(port, dev->vdisp, val);
|
if (!dev->on[0] || !dev->on[1]) {
|
||||||
dev->vdisp &= 0x1fff;
|
WRITE8(port, dev->vdisp, val);
|
||||||
|
dev->vdisp &= 0x1fff;
|
||||||
|
}
|
||||||
svga_recalctimings(svga);
|
svga_recalctimings(svga);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -108,6 +108,8 @@ ega_out(uint16_t addr, uint8_t val, void *priv)
|
|||||||
ega_recalctimings(ega);
|
ega_recalctimings(ega);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if ((ega->attraddr == 0x13) && (ega->attrregs[0x13] != val))
|
||||||
|
ega->fullchange = changeframecount;
|
||||||
o = ega->attrregs[ega->attraddr & 31];
|
o = ega->attrregs[ega->attraddr & 31];
|
||||||
ega->attrregs[ega->attraddr & 31] = val;
|
ega->attrregs[ega->attraddr & 31] = val;
|
||||||
if (ega->attraddr < 16)
|
if (ega->attraddr < 16)
|
||||||
|
Reference in New Issue
Block a user