Fix SVGA decode mask for Trident TGUI9440.

This commit is contained in:
SarahW 2018-02-11 14:47:53 +00:00
commit c88fb61aab

View file

@ -311,6 +311,7 @@ void tgui_out(uint16_t addr, uint8_t val, void *p)
{
tgui->linear_base = ((val & 0xf) | ((val >> 2) & 0x30)) << 20;
tgui->linear_size = (val & 0x10) ? 0x200000 : 0x100000;
tgui->svga.decode_mask = (val & 0x10) ? 0x1fffff : 0xfffff;
}
tgui_recalcmapping(tgui);
}
@ -710,12 +711,14 @@ void tgui_pci_write(int func, int addr, uint8_t val, void *p)
case 0x12:
tgui->linear_base = (tgui->linear_base & 0xff000000) | ((val & 0xe0) << 16);
tgui->linear_size = 2 << 20;
tgui->svga.decode_mask = 0x1fffff;
svga->crtc[0x21] = (svga->crtc[0x21] & ~0xf) | (val >> 4);
tgui_recalcmapping(tgui);
break;
case 0x13:
tgui->linear_base = (tgui->linear_base & 0xe00000) | (val << 24);
tgui->linear_size = 2 << 20;
tgui->svga.decode_mask = 0x1fffff;
svga->crtc[0x21] = (svga->crtc[0x21] & ~0xc0) | (val >> 6);
tgui_recalcmapping(tgui);
break;