VGA RAMDAC does not update palette until all three elements are written. Fixes Windows 3.x EGA driver when run on a VGA card.
This commit is contained in:
parent
12232fd7b8
commit
0a5e80325a
2 changed files with 6 additions and 5 deletions
|
|
@ -133,16 +133,16 @@ void svga_out(uint16_t addr, uint8_t val, void *p)
|
||||||
switch (svga->dac_pos)
|
switch (svga->dac_pos)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
svga->vgapal[svga->dac_write].r = val & 63;
|
svga->dac_r = val & 63;
|
||||||
svga->pallook[svga->dac_write] = makecol32(svga->vgapal[svga->dac_write].r * 4, svga->vgapal[svga->dac_write].g * 4, svga->vgapal[svga->dac_write].b * 4);
|
|
||||||
svga->dac_pos++;
|
svga->dac_pos++;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
svga->vgapal[svga->dac_write].g = val & 63;
|
svga->dac_g = val & 63;
|
||||||
svga->pallook[svga->dac_write] = makecol32(svga->vgapal[svga->dac_write].r * 4, svga->vgapal[svga->dac_write].g * 4, svga->vgapal[svga->dac_write].b * 4);
|
|
||||||
svga->dac_pos++;
|
svga->dac_pos++;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
svga->vgapal[svga->dac_write].r = svga->dac_r;
|
||||||
|
svga->vgapal[svga->dac_write].g = svga->dac_g;
|
||||||
svga->vgapal[svga->dac_write].b = val & 63;
|
svga->vgapal[svga->dac_write].b = val & 63;
|
||||||
svga->pallook[svga->dac_write] = makecol32(svga->vgapal[svga->dac_write].r * 4, svga->vgapal[svga->dac_write].g * 4, svga->vgapal[svga->dac_write].b * 4);
|
svga->pallook[svga->dac_write] = makecol32(svga->vgapal[svga->dac_write].r * 4, svga->vgapal[svga->dac_write].g * 4, svga->vgapal[svga->dac_write].b * 4);
|
||||||
svga->dac_pos = 0;
|
svga->dac_pos = 0;
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ typedef struct svga_t
|
||||||
|
|
||||||
uint8_t dac_mask, dac_status;
|
uint8_t dac_mask, dac_status;
|
||||||
int dac_read, dac_write, dac_pos;
|
int dac_read, dac_write, dac_pos;
|
||||||
|
int dac_r, dac_g;
|
||||||
|
|
||||||
uint8_t cgastat;
|
uint8_t cgastat;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue