More S3 changes/fixes.
S3 928: When the pitch is 1280, make sure the proper horizontal resolution is displayed right (in this case, 1280x1024). S3 Vision864: Exclude it from the horizontal blank bits due to more issues that are TBD (like the Trio32 and 64 and up), this works around the mode issues under Windows 9x and more as well as fix 32bpp horizontal rendering in said chip.
This commit is contained in:
@@ -3370,9 +3370,9 @@ s3_recalctimings(svga_t *svga)
|
||||
if ((svga->crtc[0x3a] & 0x10) && !svga->lowres) {
|
||||
svga->vram_display_mask = s3->vram_mask;
|
||||
s3_log("BPP=%d, pitch=%d, width=%02x, double?=%x, 16bit?=%d, highres?=%d, "
|
||||
"attr=%02x.\n", svga->bpp, s3->width, svga->crtc[0x50],
|
||||
"attr=%02x, hdisp=%d.\n", svga->bpp, s3->width, svga->crtc[0x50],
|
||||
svga->crtc[0x31] & 0x02, s3->color_16bit, s3->accel.advfunc_cntl & 4,
|
||||
svga->attrregs[0x10] & 0x40);
|
||||
svga->attrregs[0x10] & 0x40, svga->hdisp);
|
||||
switch (svga->bpp) {
|
||||
case 8:
|
||||
svga->render = svga_render_8bpp_highres;
|
||||
@@ -3381,9 +3381,19 @@ s3_recalctimings(svga_t *svga)
|
||||
switch (s3->card_type) {
|
||||
case S3_METHEUS_86C928:
|
||||
switch (s3->width) {
|
||||
case 1280:
|
||||
svga->hdisp <<= 1;
|
||||
svga->dots_per_clock <<= 1;
|
||||
case 1280: /*Account for the 1280x1024 resolution*/
|
||||
switch (svga->hdisp) {
|
||||
case 320:
|
||||
svga->hdisp <<= 2;
|
||||
svga->dots_per_clock <<= 2;
|
||||
break;
|
||||
case 640:
|
||||
svga->hdisp <<= 1;
|
||||
svga->dots_per_clock <<= 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 2048: /*Account for the 1280x1024 resolution*/
|
||||
switch (svga->hdisp) {
|
||||
@@ -3979,6 +3989,11 @@ s3_recalctimings(svga_t *svga)
|
||||
case 32:
|
||||
svga->render = svga_render_32bpp_highres;
|
||||
switch (s3->chip) {
|
||||
case S3_VISION864:
|
||||
svga->hdisp >>= 2;
|
||||
svga->dots_per_clock >>= 2;
|
||||
break;
|
||||
|
||||
case S3_VISION868:
|
||||
switch (s3->card_type) {
|
||||
case S3_PHOENIX_VISION868:
|
||||
@@ -4116,7 +4131,7 @@ s3_recalctimings(svga_t *svga)
|
||||
}
|
||||
}
|
||||
|
||||
if ((s3->chip == S3_TRIO32) || (s3->chip == S3_TRIO64))
|
||||
if ((s3->chip == S3_TRIO32) || (s3->chip == S3_TRIO64) || (s3->chip == S3_VISION864))
|
||||
svga->hoverride = 1;
|
||||
else
|
||||
svga->hoverride = 0;
|
||||
|
Reference in New Issue
Block a user