mirror of
https://github.com/86Box/86Box.git
synced 2026-02-22 09:35:32 -07:00
S3 ViRGE: Fix the LFB mappigs to operate in accordance with the documentation.
Fix certain UVCONFIG-using games at 16 or 32 MB of machine RAM.
This commit is contained in:
@@ -1114,11 +1114,7 @@ s3_virge_updatemapping(virge_t *virge)
|
||||
mem_mapping_set_addr(&svga->mapping, 0xa0000, 0x10000);
|
||||
mem_mapping_disable(&virge->linear_mapping);
|
||||
} else {
|
||||
if ((virge->chip == S3_VIRGEVX) || (virge->chip == S3_TRIO3D2X))
|
||||
virge->linear_base &= 0xfe000000;
|
||||
else
|
||||
virge->linear_base &= 0xfc000000;
|
||||
|
||||
virge->linear_base &= ~(virge->linear_size - 1);
|
||||
mem_mapping_set_addr(&virge->linear_mapping, virge->linear_base, virge->linear_size);
|
||||
}
|
||||
svga->fb_only = 1;
|
||||
@@ -5190,7 +5186,10 @@ s3_virge_pci_write(UNUSED(int func), int addr, uint8_t val, void *priv)
|
||||
return;
|
||||
|
||||
case 0x13:
|
||||
svga->crtc[0x59] = (virge->chip == S3_VIRGEVX || virge->chip == S3_TRIO3D2X) ? (val & 0xfe) : (val & 0xfc);
|
||||
if (virge->chip == S3_VIRGEVX || virge->chip == S3_TRIO3D2X)
|
||||
svga->crtc[0x59] = (svga->crtc[0x59] & 0x01) | (val & 0xfe);
|
||||
else
|
||||
svga->crtc[0x59] = (svga->crtc[0x59] & 0x03) | (val & 0xfc);
|
||||
s3_virge_updatemapping(virge);
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user