SVGA DAC mask is actually applied now.
This commit is contained in:
@@ -67,16 +67,16 @@ void svga_render_text_40(svga_t *svga)
|
||||
|
||||
if (drawcursor)
|
||||
{
|
||||
bg = svga->pallook[svga->egapal[attr & 15]];
|
||||
fg = svga->pallook[svga->egapal[attr >> 4]];
|
||||
bg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||
fg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||
}
|
||||
else
|
||||
{
|
||||
fg = svga->pallook[svga->egapal[attr & 15]];
|
||||
bg = svga->pallook[svga->egapal[attr >> 4]];
|
||||
fg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||
bg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||
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)
|
||||
fg = bg;
|
||||
}
|
||||
@@ -134,16 +134,16 @@ void svga_render_text_40_12(svga_t *svga)
|
||||
|
||||
if (drawcursor)
|
||||
{
|
||||
bg = svga->pallook[svga->egapal[attr & 15]];
|
||||
fg = svga->pallook[svga->egapal[attr >> 4]];
|
||||
bg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||
fg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||
}
|
||||
else
|
||||
{
|
||||
fg = svga->pallook[svga->egapal[attr & 15]];
|
||||
bg = svga->pallook[svga->egapal[attr >> 4]];
|
||||
fg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||
bg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||
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)
|
||||
fg = bg;
|
||||
}
|
||||
@@ -188,16 +188,16 @@ void svga_render_text_80(svga_t *svga)
|
||||
|
||||
if (drawcursor)
|
||||
{
|
||||
bg = svga->pallook[svga->egapal[attr & 15]];
|
||||
fg = svga->pallook[svga->egapal[attr >> 4]];
|
||||
bg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||
fg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||
}
|
||||
else
|
||||
{
|
||||
fg = svga->pallook[svga->egapal[attr & 15]];
|
||||
bg = svga->pallook[svga->egapal[attr >> 4]];
|
||||
fg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||
bg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||
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)
|
||||
fg = bg;
|
||||
}
|
||||
@@ -255,16 +255,16 @@ void svga_render_text_80_12(svga_t *svga)
|
||||
|
||||
if (drawcursor)
|
||||
{
|
||||
bg = svga->pallook[svga->egapal[attr & 15]];
|
||||
fg = svga->pallook[svga->egapal[attr >> 4]];
|
||||
bg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||
fg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||
}
|
||||
else
|
||||
{
|
||||
fg = svga->pallook[svga->egapal[attr & 15]];
|
||||
bg = svga->pallook[svga->egapal[attr >> 4]];
|
||||
fg = svga->pallook[svga->egapal[attr & 15] & svga->dac_mask];
|
||||
bg = svga->pallook[svga->egapal[attr >> 4] & svga->dac_mask];
|
||||
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)
|
||||
fg = bg;
|
||||
}
|
||||
@@ -319,14 +319,14 @@ void svga_render_2bpp_lowres(svga_t *svga)
|
||||
svga->ma += 4;
|
||||
svga->ma = svga_mask_addr(svga->ma, svga);
|
||||
|
||||
p[0] = p[1] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3]];
|
||||
p[2] = p[3] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3]];
|
||||
p[4] = p[5] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3]];
|
||||
p[6] = p[7] = svga->pallook[svga->egapal[dat[0] & 3]];
|
||||
p[8] = p[9] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3]];
|
||||
p[10] = p[11] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3]];
|
||||
p[12] = p[13] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3]];
|
||||
p[14] = p[15] = svga->pallook[svga->egapal[dat[1] & 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] & svga->dac_mask];
|
||||
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] & svga->dac_mask];
|
||||
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] & svga->dac_mask];
|
||||
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] & svga->dac_mask];
|
||||
|
||||
p += 16;
|
||||
}
|
||||
@@ -371,14 +371,14 @@ void svga_render_2bpp_highres(svga_t *svga)
|
||||
svga->ma += 4;
|
||||
svga->ma = svga_mask_addr(svga->ma, svga);
|
||||
|
||||
p[0] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3]];
|
||||
p[1] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3]];
|
||||
p[2] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3]];
|
||||
p[3] = svga->pallook[svga->egapal[dat[0] & 3]];
|
||||
p[4] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3]];
|
||||
p[5] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3]];
|
||||
p[6] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3]];
|
||||
p[7] = svga->pallook[svga->egapal[dat[1] & 3]];
|
||||
p[0] = svga->pallook[svga->egapal[(dat[0] >> 6) & 3] & svga->dac_mask];
|
||||
p[1] = svga->pallook[svga->egapal[(dat[0] >> 4) & 3] & svga->dac_mask];
|
||||
p[2] = svga->pallook[svga->egapal[(dat[0] >> 2) & 3] & svga->dac_mask];
|
||||
p[3] = svga->pallook[svga->egapal[dat[0] & 3] & svga->dac_mask];
|
||||
p[4] = svga->pallook[svga->egapal[(dat[1] >> 6) & 3] & svga->dac_mask];
|
||||
p[5] = svga->pallook[svga->egapal[(dat[1] >> 4) & 3] & svga->dac_mask];
|
||||
p[6] = svga->pallook[svga->egapal[(dat[1] >> 2) & 3] & svga->dac_mask];
|
||||
p[7] = svga->pallook[svga->egapal[dat[1] & 3] & svga->dac_mask];
|
||||
|
||||
p += 8;
|
||||
}
|
||||
@@ -410,17 +410,17 @@ void svga_render_4bpp_lowres(svga_t *svga)
|
||||
svga->ma = svga_mask_addr(svga->ma, svga);
|
||||
|
||||
dat = edatlookup[edat[0] >> 6][edat[1] >> 6] | (edatlookup[edat[2] >> 6][edat[3] >> 6] << 2);
|
||||
p[0] = p[1] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask]];
|
||||
p[2] = p[3] = svga->pallook[svga->egapal[dat & svga->plane_mask]];
|
||||
p[0] = p[1] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask] & svga->dac_mask];
|
||||
p[2] = p[3] = 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);
|
||||
p[4] = p[5] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask]];
|
||||
p[6] = p[7] = svga->pallook[svga->egapal[dat & svga->plane_mask]];
|
||||
p[4] = p[5] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask] & svga->dac_mask];
|
||||
p[6] = p[7] = 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);
|
||||
p[8] = p[9] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask]];
|
||||
p[10] = p[11] = svga->pallook[svga->egapal[dat & svga->plane_mask]];
|
||||
p[8] = p[9] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask] & svga->dac_mask];
|
||||
p[10] = p[11] = 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);
|
||||
p[12] = p[13] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask]];
|
||||
p[14] = p[15] = svga->pallook[svga->egapal[dat & svga->plane_mask]];
|
||||
p[12] = p[13] = svga->pallook[svga->egapal[(dat >> 4) & svga->plane_mask] & svga->dac_mask];
|
||||
p[14] = p[15] = svga->pallook[svga->egapal[dat & svga->plane_mask] & svga->dac_mask];
|
||||
|
||||
p += 16;
|
||||
}
|
||||
@@ -467,17 +467,17 @@ void svga_render_4bpp_highres(svga_t *svga)
|
||||
svga->ma = svga_mask_addr(svga->ma, svga);
|
||||
|
||||
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[1] = svga->pallook[svga->egapal[dat & 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] & svga->dac_mask];
|
||||
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[3] = svga->pallook[svga->egapal[dat & 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] & svga->dac_mask];
|
||||
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[5] = svga->pallook[svga->egapal[dat & 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] & svga->dac_mask];
|
||||
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[7] = svga->pallook[svga->egapal[dat & 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] & svga->dac_mask];
|
||||
|
||||
p += 8;
|
||||
}
|
||||
@@ -503,10 +503,10 @@ void svga_render_8bpp_lowres(svga_t *svga)
|
||||
{
|
||||
uint32_t dat = *(uint32_t *)(&svga->vram[svga->ma]);
|
||||
|
||||
p[0] = p[1] = svga->pallook[dat & 0xff];
|
||||
p[2] = p[3] = svga->pallook[(dat >> 8) & 0xff];
|
||||
p[4] = p[5] = svga->pallook[(dat >> 16) & 0xff];
|
||||
p[6] = p[7] = svga->pallook[(dat >> 24) & 0xff];
|
||||
p[0] = p[1] = svga->pallook[dat & svga->dac_mask];
|
||||
p[2] = p[3] = svga->pallook[(dat >> 8) & svga->dac_mask];
|
||||
p[4] = p[5] = svga->pallook[(dat >> 16) & svga->dac_mask];
|
||||
p[6] = p[7] = svga->pallook[(dat >> 24) & svga->dac_mask];
|
||||
|
||||
svga->ma += 4;
|
||||
svga->ma = svga_mask_addr(svga->ma, svga);
|
||||
@@ -536,16 +536,16 @@ void svga_render_8bpp_highres(svga_t *svga)
|
||||
{
|
||||
uint32_t dat;
|
||||
dat = *(uint32_t *)(&svga->vram[svga->ma]);
|
||||
p[0] = svga->pallook[dat & 0xff];
|
||||
p[1] = svga->pallook[(dat >> 8) & 0xff];
|
||||
p[2] = svga->pallook[(dat >> 16) & 0xff];
|
||||
p[3] = svga->pallook[(dat >> 24) & 0xff];
|
||||
p[0] = svga->pallook[dat & svga->dac_mask];
|
||||
p[1] = svga->pallook[(dat >> 8) & svga->dac_mask];
|
||||
p[2] = svga->pallook[(dat >> 16) & svga->dac_mask];
|
||||
p[3] = svga->pallook[(dat >> 24) & svga->dac_mask];
|
||||
|
||||
dat = *(uint32_t *)(&svga->vram[svga_mask_addr(svga->ma + 4, svga)]);
|
||||
p[4] = svga->pallook[dat & 0xff];
|
||||
p[5] = svga->pallook[(dat >> 8) & 0xff];
|
||||
p[6] = svga->pallook[(dat >> 16) & 0xff];
|
||||
p[7] = svga->pallook[(dat >> 24) & 0xff];
|
||||
p[4] = svga->pallook[dat & svga->dac_mask];
|
||||
p[5] = svga->pallook[(dat >> 8) & svga->dac_mask];
|
||||
p[6] = svga->pallook[(dat >> 16) & svga->dac_mask];
|
||||
p[7] = svga->pallook[(dat >> 24) & svga->dac_mask];
|
||||
|
||||
svga->ma += 8;
|
||||
svga->ma = svga_mask_addr(svga->ma, svga);
|
||||
|
Reference in New Issue
Block a user