From 13c1c7b235df6f42cf75a8526358de12dcb618f9 Mon Sep 17 00:00:00 2001 From: OBattler Date: Mon, 1 Oct 2018 01:45:31 +0200 Subject: [PATCH] Fixed the PCI device class registers for the S3 Vision 864 and 964 cards. --- src/video/vid_s3.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/video/vid_s3.c b/src/video/vid_s3.c index e3c37b284..8fbd5d96f 100644 --- a/src/video/vid_s3.c +++ b/src/video/vid_s3.c @@ -8,7 +8,7 @@ * * S3 emulation. * - * Version: @(#)vid_s3.c 1.0.18 2018/09/30 + * Version: @(#)vid_s3.c 1.0.19 2018/10/01 * * Authors: Sarah Walker, * Miran Grca, @@ -2792,8 +2792,16 @@ uint8_t s3_pci_read(int func, int addr, void *p) case 0x08: return 0; /*Revision ID*/ case 0x09: return 0; /*Programming interface*/ - case 0x0a: return 0x00; /*Supports VGA interface*/ - case 0x0b: return 0x03; + case 0x0a: + if ((s3->chip == S3_TRIO32) || (s3->chip == S3_TRIO64)) + return 0x00; /*Supports VGA interface*/ + else + return 0x01; + case 0x0b: + if ((s3->chip == S3_TRIO32) || (s3->chip == S3_TRIO64)) + return 0x03; + else + return 0x00; case 0x10: return 0x00; /*Linear frame buffer address*/ case 0x11: return 0x00; @@ -2827,7 +2835,8 @@ void s3_pci_write(int func, int addr, uint8_t val, void *p) break; case 0x12: - svga->crtc[0x5a] = val & 0x80; + svga->crtc[0x5a] = val & 0x80; + /* svga->crtc[0x5a] = (svga->crtc[0x5a] & 0x7f) | (val & 0x80); */ s3_updatemapping(s3); break; case 0x13: