(S)VGA render: Actually use the DAC mask, fixes #4720.
This commit is contained in:
@@ -178,14 +178,14 @@ svga_render_text_40(svga_t *svga)
|
|||||||
charaddr = svga->charseta + (chr * 128);
|
charaddr = svga->charseta + (chr * 128);
|
||||||
|
|
||||||
if (drawcursor) {
|
if (drawcursor) {
|
||||||
bg = svga->pallook[svga->egapal[attr & 15]];
|
bg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||||
fg = svga->pallook[svga->egapal[attr >> 4]];
|
fg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||||
} else {
|
} else {
|
||||||
fg = svga->pallook[svga->egapal[attr & 15]];
|
fg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||||
bg = svga->pallook[svga->egapal[attr >> 4]];
|
bg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||||
|
|
||||||
if (attr & 0x80 && svga->attrregs[0x10] & 8) {
|
if (attr & 0x80 && svga->attrregs[0x10] & 8) {
|
||||||
bg = svga->pallook[svga->egapal[(attr >> 4) & 7]];
|
bg = svga->pallook[svga->egapal[(attr >> 4) & 7] & svga->dac_mask];
|
||||||
if (svga->blink & 16)
|
if (svga->blink & 16)
|
||||||
fg = bg;
|
fg = bg;
|
||||||
}
|
}
|
||||||
@@ -256,13 +256,13 @@ svga_render_text_80(svga_t *svga)
|
|||||||
charaddr = svga->charseta + (chr * 128);
|
charaddr = svga->charseta + (chr * 128);
|
||||||
|
|
||||||
if (drawcursor) {
|
if (drawcursor) {
|
||||||
bg = svga->pallook[svga->egapal[attr & 15]];
|
bg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||||
fg = svga->pallook[svga->egapal[attr >> 4]];
|
fg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||||
} else {
|
} else {
|
||||||
fg = svga->pallook[svga->egapal[attr & 15]];
|
fg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||||
bg = svga->pallook[svga->egapal[attr >> 4]];
|
bg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||||
if (attr & 0x80 && svga->attrregs[0x10] & 8) {
|
if (attr & 0x80 && svga->attrregs[0x10] & 8) {
|
||||||
bg = svga->pallook[svga->egapal[(attr >> 4) & 7]];
|
bg = svga->pallook[svga->egapal[(attr >> 4) & 7] & svga->dac_mask];
|
||||||
if (svga->blink & 16)
|
if (svga->blink & 16)
|
||||||
fg = bg;
|
fg = bg;
|
||||||
}
|
}
|
||||||
@@ -323,13 +323,13 @@ svga_render_text_80_ksc5601(svga_t *svga)
|
|||||||
attr = svga->vram[addr + 1];
|
attr = svga->vram[addr + 1];
|
||||||
|
|
||||||
if (drawcursor) {
|
if (drawcursor) {
|
||||||
bg = svga->pallook[svga->egapal[attr & 15]];
|
bg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||||
fg = svga->pallook[svga->egapal[attr >> 4]];
|
fg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||||
} else {
|
} else {
|
||||||
fg = svga->pallook[svga->egapal[attr & 15]];
|
fg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||||
bg = svga->pallook[svga->egapal[attr >> 4]];
|
bg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||||
if (attr & 0x80 && svga->attrregs[0x10] & 8) {
|
if (attr & 0x80 && svga->attrregs[0x10] & 8) {
|
||||||
bg = svga->pallook[svga->egapal[(attr >> 4) & 7]];
|
bg = svga->pallook[svga->egapal[(attr >> 4) & 7] & svga->dac_mask];
|
||||||
if (svga->blink & 16)
|
if (svga->blink & 16)
|
||||||
fg = bg;
|
fg = bg;
|
||||||
}
|
}
|
||||||
@@ -378,13 +378,13 @@ svga_render_text_80_ksc5601(svga_t *svga)
|
|||||||
attr = svga->vram[((svga->ma << 1) + 1) & svga->vram_display_mask];
|
attr = svga->vram[((svga->ma << 1) + 1) & svga->vram_display_mask];
|
||||||
|
|
||||||
if (drawcursor) {
|
if (drawcursor) {
|
||||||
bg = svga->pallook[svga->egapal[attr & 15]];
|
bg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||||
fg = svga->pallook[svga->egapal[attr >> 4]];
|
fg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||||
} else {
|
} else {
|
||||||
fg = svga->pallook[svga->egapal[attr & 15]];
|
fg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||||
bg = svga->pallook[svga->egapal[attr >> 4]];
|
bg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||||
if (attr & 0x80 && svga->attrregs[0x10] & 8) {
|
if (attr & 0x80 && svga->attrregs[0x10] & 8) {
|
||||||
bg = svga->pallook[svga->egapal[(attr >> 4) & 7]];
|
bg = svga->pallook[svga->egapal[(attr >> 4) & 7] & svga->dac_mask];
|
||||||
if (svga->blink & 16)
|
if (svga->blink & 16)
|
||||||
fg = bg;
|
fg = bg;
|
||||||
}
|
}
|
||||||
@@ -468,14 +468,14 @@ svga_render_2bpp_s3_lowres(svga_t *svga)
|
|||||||
else
|
else
|
||||||
svga->ma += 4;
|
svga->ma += 4;
|
||||||
svga->ma &= svga->vram_mask;
|
svga->ma &= svga->vram_mask;
|
||||||
p[0] = p[1] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3]];
|
p[0] = p[1] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3] & svga->dac_mask];
|
||||||
p[2] = p[3] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3]];
|
p[2] = p[3] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3] & svga->dac_mask];
|
||||||
p[4] = p[5] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3]];
|
p[4] = p[5] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3] & svga->dac_mask];
|
||||||
p[6] = p[7] = svga->pallook[svga->egapal[dat[0] & 3]];
|
p[6] = p[7] = svga->pallook[svga->egapal[dat[0] & 3] & svga->dac_mask];
|
||||||
p[8] = p[9] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3]];
|
p[8] = p[9] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3] & svga->dac_mask];
|
||||||
p[10] = p[11] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3]];
|
p[10] = p[11] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3] & svga->dac_mask];
|
||||||
p[12] = p[13] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3]];
|
p[12] = p[13] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3] & svga->dac_mask];
|
||||||
p[14] = p[15] = svga->pallook[svga->egapal[dat[1] & 3]];
|
p[14] = p[15] = svga->pallook[svga->egapal[dat[1] & 3] & svga->dac_mask];
|
||||||
p += 16;
|
p += 16;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -501,14 +501,14 @@ svga_render_2bpp_s3_lowres(svga_t *svga)
|
|||||||
|
|
||||||
svga->ma &= svga->vram_mask;
|
svga->ma &= svga->vram_mask;
|
||||||
|
|
||||||
p[0] = p[1] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3]];
|
p[0] = p[1] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3] & svga->dac_mask];
|
||||||
p[2] = p[3] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3]];
|
p[2] = p[3] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3] & svga->dac_mask];
|
||||||
p[4] = p[5] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3]];
|
p[4] = p[5] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3] & svga->dac_mask];
|
||||||
p[6] = p[7] = svga->pallook[svga->egapal[dat[0] & 3]];
|
p[6] = p[7] = svga->pallook[svga->egapal[dat[0] & 3] & svga->dac_mask];
|
||||||
p[8] = p[9] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3]];
|
p[8] = p[9] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3] & svga->dac_mask];
|
||||||
p[10] = p[11] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3]];
|
p[10] = p[11] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3] & svga->dac_mask];
|
||||||
p[12] = p[13] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3]];
|
p[12] = p[13] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3] & svga->dac_mask];
|
||||||
p[14] = p[15] = svga->pallook[svga->egapal[dat[1] & 3]];
|
p[14] = p[15] = svga->pallook[svga->egapal[dat[1] & 3] & svga->dac_mask];
|
||||||
|
|
||||||
p += 16;
|
p += 16;
|
||||||
}
|
}
|
||||||
@@ -566,14 +566,14 @@ svga_render_2bpp_s3_highres(svga_t *svga)
|
|||||||
else
|
else
|
||||||
svga->ma += 4;
|
svga->ma += 4;
|
||||||
svga->ma &= svga->vram_mask;
|
svga->ma &= svga->vram_mask;
|
||||||
p[0] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3]];
|
p[0] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3] & svga->dac_mask];
|
||||||
p[1] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3]];
|
p[1] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3] & svga->dac_mask];
|
||||||
p[2] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3]];
|
p[2] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3] & svga->dac_mask];
|
||||||
p[3] = svga->pallook[svga->egapal[dat[0] & 3]];
|
p[3] = svga->pallook[svga->egapal[dat[0] & 3] & svga->dac_mask];
|
||||||
p[4] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3]];
|
p[4] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3] & svga->dac_mask];
|
||||||
p[5] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3]];
|
p[5] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3] & svga->dac_mask];
|
||||||
p[6] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3]];
|
p[6] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3] & svga->dac_mask];
|
||||||
p[7] = svga->pallook[svga->egapal[dat[1] & 3]];
|
p[7] = svga->pallook[svga->egapal[dat[1] & 3] & svga->dac_mask];
|
||||||
p += 8;
|
p += 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -599,14 +599,14 @@ svga_render_2bpp_s3_highres(svga_t *svga)
|
|||||||
|
|
||||||
svga->ma &= svga->vram_mask;
|
svga->ma &= svga->vram_mask;
|
||||||
|
|
||||||
p[0] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3]];
|
p[0] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3] & svga->dac_mask];
|
||||||
p[1] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3]];
|
p[1] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3] & svga->dac_mask];
|
||||||
p[2] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3]];
|
p[2] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3] & svga->dac_mask];
|
||||||
p[3] = svga->pallook[svga->egapal[dat[0] & 3]];
|
p[3] = svga->pallook[svga->egapal[dat[0] & 3] & svga->dac_mask];
|
||||||
p[4] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3]];
|
p[4] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3] & svga->dac_mask];
|
||||||
p[5] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3]];
|
p[5] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3] & svga->dac_mask];
|
||||||
p[6] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3]];
|
p[6] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3] & svga->dac_mask];
|
||||||
p[7] = svga->pallook[svga->egapal[dat[1] & 3]];
|
p[7] = svga->pallook[svga->egapal[dat[1] & 3] & svga->dac_mask];
|
||||||
|
|
||||||
p += 8;
|
p += 8;
|
||||||
}
|
}
|
||||||
@@ -652,17 +652,17 @@ svga_render_2bpp_headland_highres(svga_t *svga)
|
|||||||
svga->ma &= svga->vram_mask;
|
svga->ma &= svga->vram_mask;
|
||||||
|
|
||||||
dat = edatlookup[edat[0] >> 6][edat[1] >> 6] | (edatlookup[edat[2] >> 6][edat[3] >> 6] << 2);
|
dat = edatlookup[edat[0] >> 6][edat[1] >> 6] | (edatlookup[edat[2] >> 6][edat[3] >> 6] << 2);
|
||||||
p[0] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask]];
|
p[0] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask] & svga->dac_mask];
|
||||||
p[1] = svga->pallook[svga->egapal[dat & svga->plane_mask]];
|
p[1] = svga->pallook[svga->egapal[dat & svga->plane_mask] & svga->dac_mask];
|
||||||
dat = edatlookup[(edat[0] >> 4) & 3][(edat[1] >> 4) & 3] | (edatlookup[(edat[2] >> 4) & 3][(edat[3] >> 4) & 3] << 2);
|
dat = edatlookup[(edat[0] >> 4) & 3][(edat[1] >> 4) & 3] | (edatlookup[(edat[2] >> 4) & 3][(edat[3] >> 4) & 3] << 2);
|
||||||
p[2] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask]];
|
p[2] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask] & svga->dac_mask];
|
||||||
p[3] = svga->pallook[svga->egapal[dat & svga->plane_mask]];
|
p[3] = svga->pallook[svga->egapal[dat & svga->plane_mask] & svga->dac_mask];
|
||||||
dat = edatlookup[(edat[0] >> 2) & 3][(edat[1] >> 2) & 3] | (edatlookup[(edat[2] >> 2) & 3][(edat[3] >> 2) & 3] << 2);
|
dat = edatlookup[(edat[0] >> 2) & 3][(edat[1] >> 2) & 3] | (edatlookup[(edat[2] >> 2) & 3][(edat[3] >> 2) & 3] << 2);
|
||||||
p[4] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask]];
|
p[4] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask] & svga->dac_mask];
|
||||||
p[5] = svga->pallook[svga->egapal[dat & svga->plane_mask]];
|
p[5] = svga->pallook[svga->egapal[dat & svga->plane_mask] & svga->dac_mask];
|
||||||
dat = edatlookup[edat[0] & 3][edat[1] & 3] | (edatlookup[edat[2] & 3][edat[3] & 3] << 2);
|
dat = edatlookup[edat[0] & 3][edat[1] & 3] | (edatlookup[edat[2] & 3][edat[3] & 3] << 2);
|
||||||
p[6] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask]];
|
p[6] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask] & svga->dac_mask];
|
||||||
p[7] = svga->pallook[svga->egapal[dat & svga->plane_mask]];
|
p[7] = svga->pallook[svga->egapal[dat & svga->plane_mask] & svga->dac_mask];
|
||||||
|
|
||||||
p += 8;
|
p += 8;
|
||||||
}
|
}
|
||||||
@@ -868,8 +868,8 @@ svga_render_indexed_gfx(svga_t *svga, bool highres, bool combine8bits)
|
|||||||
}
|
}
|
||||||
} else if (combine8bits) {
|
} else if (combine8bits) {
|
||||||
if (svga->packed_4bpp) {
|
if (svga->packed_4bpp) {
|
||||||
uint32_t p0 = svga->map8[c0];
|
uint32_t p0 = svga->map8[c0 & svga->dac_mask];
|
||||||
uint32_t p1 = svga->map8[c1];
|
uint32_t p1 = svga->map8[c1 & svga->dac_mask];
|
||||||
const int outoffs = i << dwshift;
|
const int outoffs = i << dwshift;
|
||||||
for (int subx = 0; subx < dotwidth; subx++)
|
for (int subx = 0; subx < dotwidth; subx++)
|
||||||
p[outoffs + subx] = p0;
|
p[outoffs + subx] = p0;
|
||||||
@@ -877,14 +877,14 @@ svga_render_indexed_gfx(svga_t *svga, bool highres, bool combine8bits)
|
|||||||
p[outoffs + subx + dotwidth] = p1;
|
p[outoffs + subx + dotwidth] = p1;
|
||||||
} else {
|
} else {
|
||||||
uint32_t ccombined = (c0 << 4) | c1;
|
uint32_t ccombined = (c0 << 4) | c1;
|
||||||
uint32_t p0 = svga->map8[ccombined];
|
uint32_t p0 = svga->map8[ccombined & svga->dac_mask];
|
||||||
const int outoffs = (i >> 1) << dwshift;
|
const int outoffs = (i >> 1) << dwshift;
|
||||||
for (int subx = 0; subx < dotwidth; subx++)
|
for (int subx = 0; subx < dotwidth; subx++)
|
||||||
p[outoffs + subx] = p0;
|
p[outoffs + subx] = p0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
uint32_t p0 = svga->pallook[svga->egapal[c0]];
|
uint32_t p0 = svga->pallook[svga->egapal[c0] & svga->dac_mask];
|
||||||
uint32_t p1 = svga->pallook[svga->egapal[c1]];
|
uint32_t p1 = svga->pallook[svga->egapal[c1] & svga->dac_mask];
|
||||||
const int outoffs = i << dwshift;
|
const int outoffs = i << dwshift;
|
||||||
for (int subx = 0; subx < dotwidth; subx++)
|
for (int subx = 0; subx < dotwidth; subx++)
|
||||||
p[outoffs + subx] = p0;
|
p[outoffs + subx] = p0;
|
||||||
@@ -934,16 +934,16 @@ svga_render_8bpp_clone_highres(svga_t *svga)
|
|||||||
|
|
||||||
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 8) {
|
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 8) {
|
||||||
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
||||||
p[0] = svga->map8[dat & 0xff];
|
p[0] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[1] = svga->map8[(dat >> 8) & 0xff];
|
p[1] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[2] = svga->map8[(dat >> 16) & 0xff];
|
p[2] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[3] = svga->map8[(dat >> 24) & 0xff];
|
p[3] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
||||||
p[4] = svga->map8[dat & 0xff];
|
p[4] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[5] = svga->map8[(dat >> 8) & 0xff];
|
p[5] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[6] = svga->map8[(dat >> 16) & 0xff];
|
p[6] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[7] = svga->map8[(dat >> 24) & 0xff];
|
p[7] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 8;
|
svga->ma += 8;
|
||||||
p += 8;
|
p += 8;
|
||||||
@@ -963,16 +963,16 @@ svga_render_8bpp_clone_highres(svga_t *svga)
|
|||||||
if (!svga->remap_required) {
|
if (!svga->remap_required) {
|
||||||
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 8) {
|
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 8) {
|
||||||
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
||||||
p[0] = svga->map8[dat & 0xff];
|
p[0] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[1] = svga->map8[(dat >> 8) & 0xff];
|
p[1] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[2] = svga->map8[(dat >> 16) & 0xff];
|
p[2] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[3] = svga->map8[(dat >> 24) & 0xff];
|
p[3] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
||||||
p[4] = svga->map8[dat & 0xff];
|
p[4] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[5] = svga->map8[(dat >> 8) & 0xff];
|
p[5] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[6] = svga->map8[(dat >> 16) & 0xff];
|
p[6] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[7] = svga->map8[(dat >> 24) & 0xff];
|
p[7] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 8;
|
svga->ma += 8;
|
||||||
p += 8;
|
p += 8;
|
||||||
@@ -981,10 +981,10 @@ svga_render_8bpp_clone_highres(svga_t *svga)
|
|||||||
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 4) {
|
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 4) {
|
||||||
addr = svga->remap_func(svga, svga->ma);
|
addr = svga->remap_func(svga, svga->ma);
|
||||||
dat = *(uint32_t *) (&svga->vram[addr & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[addr & svga->vram_display_mask]);
|
||||||
p[0] = svga->map8[dat & 0xff];
|
p[0] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[1] = svga->map8[(dat >> 8) & 0xff];
|
p[1] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[2] = svga->map8[(dat >> 16) & 0xff];
|
p[2] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[3] = svga->map8[(dat >> 24) & 0xff];
|
p[3] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 4;
|
svga->ma += 4;
|
||||||
p += 4;
|
p += 4;
|
||||||
@@ -1043,10 +1043,10 @@ svga_render_8bpp_lowres(svga_t *svga)
|
|||||||
if (!svga->remap_required) {
|
if (!svga->remap_required) {
|
||||||
for (x = 0; x <= (svga->hdisp + svga->scrollcache); x += 8) {
|
for (x = 0; x <= (svga->hdisp + svga->scrollcache); x += 8) {
|
||||||
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
||||||
p[0] = p[1] = svga->map8[dat & 0xff];
|
p[0] = p[1] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[2] = p[3] = svga->map8[(dat >> 8) & 0xff];
|
p[2] = p[3] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[4] = p[5] = svga->map8[(dat >> 16) & 0xff];
|
p[4] = p[5] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[6] = p[7] = svga->map8[(dat >> 24) & 0xff];
|
p[6] = p[7] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 4;
|
svga->ma += 4;
|
||||||
p += 8;
|
p += 8;
|
||||||
@@ -1055,10 +1055,10 @@ svga_render_8bpp_lowres(svga_t *svga)
|
|||||||
for (x = 0; x <= (svga->hdisp + svga->scrollcache); x += 8) {
|
for (x = 0; x <= (svga->hdisp + svga->scrollcache); x += 8) {
|
||||||
addr = svga->remap_func(svga, svga->ma);
|
addr = svga->remap_func(svga, svga->ma);
|
||||||
dat = *(uint32_t *) (&svga->vram[addr & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[addr & svga->vram_display_mask]);
|
||||||
p[0] = p[1] = svga->map8[dat & 0xff];
|
p[0] = p[1] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[2] = p[3] = svga->map8[(dat >> 8) & 0xff];
|
p[2] = p[3] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[4] = p[5] = svga->map8[(dat >> 16) & 0xff];
|
p[4] = p[5] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[6] = p[7] = svga->map8[(dat >> 24) & 0xff];
|
p[6] = p[7] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 4;
|
svga->ma += 4;
|
||||||
p += 8;
|
p += 8;
|
||||||
@@ -1091,16 +1091,16 @@ svga_render_8bpp_highres(svga_t *svga)
|
|||||||
|
|
||||||
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 8) {
|
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 8) {
|
||||||
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
||||||
p[0] = svga->map8[dat & 0xff];
|
p[0] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[1] = svga->map8[(dat >> 8) & 0xff];
|
p[1] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[2] = svga->map8[(dat >> 16) & 0xff];
|
p[2] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[3] = svga->map8[(dat >> 24) & 0xff];
|
p[3] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
||||||
p[4] = svga->map8[dat & 0xff];
|
p[4] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[5] = svga->map8[(dat >> 8) & 0xff];
|
p[5] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[6] = svga->map8[(dat >> 16) & 0xff];
|
p[6] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[7] = svga->map8[(dat >> 24) & 0xff];
|
p[7] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 8;
|
svga->ma += 8;
|
||||||
p += 8;
|
p += 8;
|
||||||
@@ -1120,16 +1120,16 @@ svga_render_8bpp_highres(svga_t *svga)
|
|||||||
if (!svga->remap_required) {
|
if (!svga->remap_required) {
|
||||||
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 8) {
|
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 8) {
|
||||||
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
||||||
p[0] = svga->map8[dat & 0xff];
|
p[0] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[1] = svga->map8[(dat >> 8) & 0xff];
|
p[1] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[2] = svga->map8[(dat >> 16) & 0xff];
|
p[2] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[3] = svga->map8[(dat >> 24) & 0xff];
|
p[3] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
||||||
p[4] = svga->map8[dat & 0xff];
|
p[4] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[5] = svga->map8[(dat >> 8) & 0xff];
|
p[5] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[6] = svga->map8[(dat >> 16) & 0xff];
|
p[6] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[7] = svga->map8[(dat >> 24) & 0xff];
|
p[7] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 8;
|
svga->ma += 8;
|
||||||
p += 8;
|
p += 8;
|
||||||
@@ -1138,10 +1138,10 @@ svga_render_8bpp_highres(svga_t *svga)
|
|||||||
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 4) {
|
for (x = 0; x <= (svga->hdisp /* + svga->scrollcache*/); x += 4) {
|
||||||
addr = svga->remap_func(svga, svga->ma);
|
addr = svga->remap_func(svga, svga->ma);
|
||||||
dat = *(uint32_t *) (&svga->vram[addr & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[addr & svga->vram_display_mask]);
|
||||||
p[0] = svga->map8[dat & 0xff];
|
p[0] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
p[1] = svga->map8[(dat >> 8) & 0xff];
|
p[1] = svga->map8[(dat >> 8) & svga->dac_mask & 0xff];
|
||||||
p[2] = svga->map8[(dat >> 16) & 0xff];
|
p[2] = svga->map8[(dat >> 16) & svga->dac_mask & 0xff];
|
||||||
p[3] = svga->map8[(dat >> 24) & 0xff];
|
p[3] = svga->map8[(dat >> 24) & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 4;
|
svga->ma += 4;
|
||||||
p += 4;
|
p += 4;
|
||||||
@@ -1173,19 +1173,19 @@ svga_render_8bpp_tseng_lowres(svga_t *svga)
|
|||||||
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[0] = p[1] = svga->map8[dat & 0xff];
|
p[0] = p[1] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
dat >>= 8;
|
dat >>= 8;
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[2] = p[3] = svga->map8[dat & 0xff];
|
p[2] = p[3] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
dat >>= 8;
|
dat >>= 8;
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[4] = p[5] = svga->map8[dat & 0xff];
|
p[4] = p[5] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
dat >>= 8;
|
dat >>= 8;
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[6] = p[7] = svga->map8[dat & 0xff];
|
p[6] = p[7] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 4;
|
svga->ma += 4;
|
||||||
p += 8;
|
p += 8;
|
||||||
@@ -1214,36 +1214,36 @@ svga_render_8bpp_tseng_highres(svga_t *svga)
|
|||||||
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[svga->ma & svga->vram_display_mask]);
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[0] = svga->map8[dat & 0xff];
|
p[0] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
dat >>= 8;
|
dat >>= 8;
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[1] = svga->map8[dat & 0xff];
|
p[1] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
dat >>= 8;
|
dat >>= 8;
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[2] = svga->map8[dat & 0xff];
|
p[2] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
dat >>= 8;
|
dat >>= 8;
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[3] = svga->map8[dat & 0xff];
|
p[3] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
dat = *(uint32_t *) (&svga->vram[(svga->ma + 4) & svga->vram_display_mask]);
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[4] = svga->map8[dat & 0xff];
|
p[4] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
dat >>= 8;
|
dat >>= 8;
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[5] = svga->map8[dat & 0xff];
|
p[5] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
dat >>= 8;
|
dat >>= 8;
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[6] = svga->map8[dat & 0xff];
|
p[6] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
dat >>= 8;
|
dat >>= 8;
|
||||||
if (svga->attrregs[0x10] & 0x80)
|
if (svga->attrregs[0x10] & 0x80)
|
||||||
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
dat = (dat & ~0xf0) | ((svga->attrregs[0x14] & 0x0f) << 4);
|
||||||
p[7] = svga->map8[dat & 0xff];
|
p[7] = svga->map8[dat & svga->dac_mask & 0xff];
|
||||||
|
|
||||||
svga->ma += 8;
|
svga->ma += 8;
|
||||||
p += 8;
|
p += 8;
|
||||||
|
Reference in New Issue
Block a user