# HG changeset patch # User TomW # Date 1411071255 -3600 # Node ID 7dbd14c4adac565888b88ea83de4e329f5cc9d04 # Parent 153d673e767a98c13d4e6db6c5dc6b62323817ae Restricted available range of attribute and sequencer registers on ViRGE, XFree86 now detects card correctly. diff -r 153d673e767a -r 7dbd14c4adac src/vid_s3_virge.c --- a/src/vid_s3_virge.c Wed Sep 17 21:50:57 2014 +0100 +++ b/src/vid_s3_virge.c Thu Sep 18 21:14:15 2014 +0100 @@ -383,15 +383,23 @@ // if (addr != 0x3da) pclog("S3 in %04X %04X:%08X ", addr, CS, pc); switch (addr) { + case 0x3c1: + if (svga->attraddr > 0x14) + ret = 0xff; + else + ret = svga_in(addr, svga); + break; //case 0x3C6: case 0x3C7: case 0x3C8: case 0x3C9: // pclog("Read RAMDAC %04X %04X:%04X\n", addr, CS, pc); //return sdac_ramdac_in(addr); case 0x3c5: - if (svga->seqaddr >= 0x10) + if (svga->seqaddr >= 8) ret = svga->seqregs[svga->seqaddr & 0x1f]; + else if (svga->seqaddr <= 4) + ret = svga_in(addr, svga); else - ret = svga_in(addr, svga); + ret = 0xff; break; case 0x3D4: