diff --git a/src/vid_s3.c b/src/vid_s3.c index 438e2ef..b6aa40f 100644 --- a/src/vid_s3.c +++ b/src/vid_s3.c @@ -798,7 +798,10 @@ void s3_out(uint16_t addr, uint8_t val, void *p) case 0x3C6: case 0x3C7: case 0x3C8: case 0x3C9: // pclog("Write RAMDAC %04X %02X %04X:%04X\n", addr, val, CS, pc); - sdac_ramdac_out(addr, val, &s3->ramdac, svga); + if (s3->chip == S3_TRIO32 || s3->chip == S3_TRIO64) + svga_out(addr, val, svga); + else + sdac_ramdac_out(addr, val, &s3->ramdac, svga); return; case 0x3D4: @@ -933,6 +936,8 @@ uint8_t s3_in(uint16_t addr, void *p) case 0x3c6: case 0x3c7: case 0x3c8: case 0x3c9: // pclog("Read RAMDAC %04X %04X:%04X\n", addr, CS, pc); + if (s3->chip == S3_TRIO32 || s3->chip == S3_TRIO64) + return svga_in(addr, svga); return sdac_ramdac_in(addr, &s3->ramdac, svga); case 0x3d4: