diff --git a/src/video/vid_ati28800.c b/src/video/vid_ati28800.c index b3f138dc7..1f2b69e25 100644 --- a/src/video/vid_ati28800.c +++ b/src/video/vid_ati28800.c @@ -429,7 +429,7 @@ ati28800_recalctimings(svga_t *svga) svga->hdisp <<= 1; svga->htotal <<= 1; svga->rowoffset <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; svga->gdcreg[5] &= ~0x40; } @@ -446,7 +446,7 @@ ati28800_recalctimings(svga_t *svga) if ((ati28800->regs[0xb6] & 0x18) == 8) { svga->hdisp <<= 1; svga->htotal <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; svga->ati_4color = 1; } else diff --git a/src/video/vid_ati_mach8.c b/src/video/vid_ati_mach8.c index 34cd8b11b..b19f1e3d6 100644 --- a/src/video/vid_ati_mach8.c +++ b/src/video/vid_ati_mach8.c @@ -2615,7 +2615,7 @@ mach_recalctimings(svga_t *svga) if ((mach->regs[0xb6] & 0x18) >= 0x10) { svga->hdisp <<= 1; svga->htotal <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; svga->rowoffset <<= 1; svga->gdcreg[5] &= ~0x40; @@ -2634,7 +2634,7 @@ mach_recalctimings(svga_t *svga) if ((mach->regs[0xb6] & 0x18) == 8) { svga->hdisp <<= 1; svga->htotal <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; svga->ati_4color = 1; } else diff --git a/src/video/vid_cl54xx.c b/src/video/vid_cl54xx.c index c1d622ac5..168912e9d 100644 --- a/src/video/vid_cl54xx.c +++ b/src/video/vid_cl54xx.c @@ -1796,7 +1796,7 @@ gd54xx_recalctimings(svga_t *svga) svga->render = svga_render_8bpp_highres; if ((svga->dispend == 512) && !svga->interlace && gd54xx_is_5434(svga)) { svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; } } diff --git a/src/video/vid_s3.c b/src/video/vid_s3.c index 25c0ea98c..48e55e02e 100644 --- a/src/video/vid_s3.c +++ b/src/video/vid_s3.c @@ -3330,19 +3330,19 @@ s3_recalctimings(svga_t *svga) switch (s3->width) { case 1280: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; break; case 2048: /*Account for the 1280x1024 resolution*/ switch (svga->hdisp) { case 320: svga->hdisp <<= 2; - svga->hblankstart = ((svga->hblankstart - 1) << 2) + 1; + svga->hblankstart <<= 2; svga->hblank_end_val <<= 2; break; case 640: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; break; default: @@ -3364,7 +3364,7 @@ s3_recalctimings(svga_t *svga) switch (s3->width) { case 640: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; default: @@ -3379,9 +3379,15 @@ s3_recalctimings(svga_t *svga) case S3_VISION964: switch (s3->card_type) { case S3_ELSAWIN2KPROX_964: - svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; - svga->hblank_end_val <<= 1; + switch (s3->width) { + case 1280: + case 1600: + svga->hdisp <<= 1; + svga->hblankstart <<= 1; + svga->hblank_end_val <<= 1; + default: + break; + } break; default: @@ -3391,19 +3397,28 @@ s3_recalctimings(svga_t *svga) case S3_VISION968: switch (s3->card_type) { case S3_NUMBER9_9FX_771: + svga->hdisp <<= 1; + svga->hblankstart <<= 1; + svga->hblank_end_val <<= 1; + break; case S3_SPEA_MERCURY_P64V: case S3_ELSAWIN2KPROX: - case S3_PHOENIX_VISION968: - svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; - svga->hblank_end_val <<= 1; + switch (s3->width) { + case 1280: + case 1600: + svga->hdisp <<= 1; + svga->hblankstart <<= 1; + svga->hblank_end_val <<= 1; + default: + break; + } break; case S3_MIROVIDEO40SV_ERGO_968: switch (s3->width) { case 1152: case 1280: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; break; default: @@ -3449,13 +3464,15 @@ s3_recalctimings(svga_t *svga) case S3_86C911: case S3_86C924: svga->hdisp >>= 1; + svga->hblankstart >>= 1; + svga->hblank_end_val >>= 1; break; case S3_86C801: switch (s3->card_type) { case S3_PHOENIX_86C801: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; @@ -3470,19 +3487,21 @@ s3_recalctimings(svga_t *svga) case S3_PHOENIX_86C805: case S3_86C805_ONBOARD: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; case S3_SPEA_MIRAGE_86C805: svga->hdisp >>= 1; + svga->hblankstart >>= 1; + svga->hblank_end_val >>= 1; switch (s3->width) { case 800: case 1024: if (svga->hdisp == 400) { /*SPEA specific drivers + its VBE RAM BIOS...*/ svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; } break; @@ -3500,7 +3519,7 @@ s3_recalctimings(svga_t *svga) case S3_METHEUS_86C928: if (!s3->color_16bit) { svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; } switch (svga->hdisp) { /*This might be a driver issue*/ @@ -3525,7 +3544,7 @@ s3_recalctimings(svga_t *svga) switch (s3->width) { case 640: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; default: @@ -3539,7 +3558,7 @@ s3_recalctimings(svga_t *svga) break; case S3_VISION864: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; case S3_VISION964: @@ -3549,7 +3568,7 @@ s3_recalctimings(svga_t *svga) case 1280: case 1600: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; break; default: @@ -3566,7 +3585,7 @@ s3_recalctimings(svga_t *svga) case S3_PHOENIX_VISION868: case S3_NUMBER9_9FX_531: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; @@ -3579,7 +3598,7 @@ s3_recalctimings(svga_t *svga) case S3_NUMBER9_9FX_771: case S3_PHOENIX_VISION968: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; /* TODO: Is this still needed? */ if (svga->hdisp == 832) @@ -3591,7 +3610,7 @@ s3_recalctimings(svga_t *svga) case 1280: case 1600: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; break; default: @@ -3606,7 +3625,7 @@ s3_recalctimings(svga_t *svga) case S3_TRIO64: case S3_TRIO32: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; @@ -3643,7 +3662,7 @@ s3_recalctimings(svga_t *svga) case S3_86C911: case S3_86C924: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; @@ -3651,7 +3670,7 @@ s3_recalctimings(svga_t *svga) switch (s3->card_type) { case S3_PHOENIX_86C801: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; @@ -3666,7 +3685,7 @@ s3_recalctimings(svga_t *svga) case S3_PHOENIX_86C805: case S3_86C805_ONBOARD: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; @@ -3678,7 +3697,7 @@ s3_recalctimings(svga_t *svga) if (svga->hdisp == 400) { /*SPEA specific drivers + its VBE RAM BIOS...*/ svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; } break; @@ -3695,7 +3714,7 @@ s3_recalctimings(svga_t *svga) switch (s3->card_type) { case S3_METHEUS_86C928: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; switch (svga->hdisp) { /*This might be a driver issue*/ case 800: @@ -3719,7 +3738,7 @@ s3_recalctimings(svga_t *svga) switch (s3->width) { case 640: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; default: @@ -3733,7 +3752,7 @@ s3_recalctimings(svga_t *svga) break; case S3_VISION864: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; case S3_VISION868: @@ -3741,7 +3760,7 @@ s3_recalctimings(svga_t *svga) case S3_PHOENIX_VISION868: case S3_NUMBER9_9FX_531: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; @@ -3756,7 +3775,7 @@ s3_recalctimings(svga_t *svga) case 1280: case 1600: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; break; default: @@ -3773,7 +3792,7 @@ s3_recalctimings(svga_t *svga) case S3_NUMBER9_9FX_771: case S3_PHOENIX_VISION968: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; /* TODO: Is this still needed? */ if (svga->hdisp == 832) @@ -3785,7 +3804,7 @@ s3_recalctimings(svga_t *svga) case 1280: case 1600: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; break; default: @@ -3800,7 +3819,7 @@ s3_recalctimings(svga_t *svga) case S3_TRIO64: case S3_TRIO32: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; @@ -3844,7 +3863,7 @@ s3_recalctimings(svga_t *svga) switch (s3->card_type) { case S3_AMI_86C924: svga->hdisp = (svga->hdisp << 1) / 3; - svga->hblankstart = (((svga->hblankstart - 1) << 1) / 3) + 1; + svga->hblankstart = (svga->hblankstart << 1) / 3; svga->hblank_end_val = (svga->hblank_end_val << 1) / 3; /* TODO: Is this still needed? */ if (svga->hdisp == 645) @@ -3859,7 +3878,7 @@ s3_recalctimings(svga_t *svga) case S3_PHOENIX_86C801: case S3_SPEA_MIRAGE_86C801: svga->hdisp = (svga->hdisp << 1) / 3; - svga->hblankstart = (((svga->hblankstart - 1) << 1) / 3) + 1; + svga->hblankstart = (svga->hblankstart << 1) / 3; svga->hblank_end_val = (svga->hblank_end_val << 1) / 3; break; default: @@ -3874,7 +3893,7 @@ s3_recalctimings(svga_t *svga) case S3_SPEA_MIRAGE_86C805: case S3_86C805_ONBOARD: svga->hdisp = (svga->hdisp << 1) / 3; - svga->hblankstart = (((svga->hblankstart - 1) << 1) / 3) + 1; + svga->hblankstart = (svga->hblankstart << 1) / 3; svga->hblank_end_val = (svga->hblank_end_val << 1) / 3; break; default: @@ -3885,7 +3904,7 @@ s3_recalctimings(svga_t *svga) switch (s3->card_type) { case S3_SPEA_MERCURY_LITE_PCI: svga->hdisp = (svga->hdisp << 1) / 3; - svga->hblankstart = (((svga->hblankstart - 1) << 1) / 3) + 1; + svga->hblankstart = (svga->hblankstart << 1) / 3; svga->hblank_end_val = (svga->hblank_end_val << 1) / 3; break; default: @@ -3894,7 +3913,7 @@ s3_recalctimings(svga_t *svga) break; case S3_VISION864: svga->hdisp = (svga->hdisp << 1) / 3; - svga->hblankstart = (((svga->hblankstart - 1) << 1) / 3) + 1; + svga->hblankstart = (svga->hblankstart << 1) / 3; svga->hblank_end_val = (svga->hblank_end_val << 1) / 3; break; case S3_VISION968: @@ -3903,7 +3922,7 @@ s3_recalctimings(svga_t *svga) switch (s3->width) { case 1280: svga->hdisp = ((svga->hdisp << 1) / 3) << 1; - svga->hblankstart = ((((svga->hblankstart - 1) << 1) / 3) << 1) + 1; + svga->hblankstart = (svga->hblankstart << 1) / 3; svga->hblank_end_val = ((svga->hblank_end_val << 1) / 3) << 1; break; default: @@ -3919,7 +3938,7 @@ s3_recalctimings(svga_t *svga) case S3_TRIO64: case S3_TRIO32: svga->hdisp /= 3; - svga->hblankstart = ((svga->hblankstart - 1) / 3) + 1; + svga->hblankstart /= 3; svga->hblank_end_val /= 3; break; @@ -3962,7 +3981,7 @@ s3_recalctimings(svga_t *svga) case S3_PHOENIX_VISION868: case S3_NUMBER9_9FX_531: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; default: @@ -3976,7 +3995,7 @@ s3_recalctimings(svga_t *svga) case 800: case 1024: svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; default: @@ -3988,7 +4007,7 @@ s3_recalctimings(svga_t *svga) case 1280: case 1600: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; break; default: @@ -4004,7 +4023,7 @@ s3_recalctimings(svga_t *svga) case S3_NUMBER9_9FX_771: case S3_PHOENIX_VISION968: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; /* TODO: Is this still needed? */ if (svga->hdisp == 832) @@ -4016,7 +4035,7 @@ s3_recalctimings(svga_t *svga) case 1280: case 1600: svga->hdisp <<= 1; - svga->hblankstart = ((svga->hblankstart - 1) << 1) + 1; + svga->hblankstart <<= 1; svga->hblank_end_val <<= 1; break; default: @@ -4200,19 +4219,19 @@ s3_trio64v_recalctimings(svga_t *svga) case 15: svga->render = svga_render_15bpp_highres; svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; case 16: svga->render = svga_render_16bpp_highres; svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; break; case 24: svga->render = svga_render_24bpp_highres; svga->hdisp /= 3; - svga->hblankstart = ((svga->hblankstart - 1) / 3) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val /= 3; break; case 32: @@ -4256,13 +4275,13 @@ s3_trio64v_recalctimings(svga_t *svga) break; case 3: /*KRGB-16 (1.5.5.5)*/ svga->htotal >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; svga->render = svga_render_15bpp_highres; break; case 5: /*RGB-16 (5.6.5)*/ svga->htotal >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; svga->render = svga_render_16bpp_highres; break; diff --git a/src/video/vid_s3_virge.c b/src/video/vid_s3_virge.c index 8f05552c3..a0bf98815 100644 --- a/src/video/vid_s3_virge.c +++ b/src/video/vid_s3_virge.c @@ -864,8 +864,7 @@ s3_virge_recalctimings(svga_t *svga) if (virge->chip != S3_VIRGEVX && virge->chip < S3_VIRGEGX2) { svga->htotal >>= 1; svga->hdisp >>= 1; - svga->hoverride = 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; } break; @@ -874,7 +873,7 @@ s3_virge_recalctimings(svga_t *svga) if (virge->chip != S3_VIRGEVX && virge->chip < S3_VIRGEGX2) { svga->htotal >>= 1; svga->hdisp >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; } break; @@ -923,13 +922,13 @@ s3_virge_recalctimings(svga_t *svga) break; case 3: /*KRGB-16 (1.5.5.5)*/ svga->htotal >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; svga->render = svga_render_15bpp_highres; break; case 5: /*RGB-16 (5.6.5)*/ svga->htotal >>= 1; - svga->hblankstart = ((svga->hblankstart - 1) >> 1) + 1; + svga->hblankstart >>= 1; svga->hblank_end_val >>= 1; svga->render = svga_render_16bpp_highres; break; diff --git a/src/video/vid_voodoo_banshee.c b/src/video/vid_voodoo_banshee.c index d013ec2e5..5e28e763c 100644 --- a/src/video/vid_voodoo_banshee.c +++ b/src/video/vid_voodoo_banshee.c @@ -641,7 +641,7 @@ banshee_recalctimings(svga_t *svga) if (banshee->vidProcCfg & VIDPROCCFG_2X_MODE) { svga->hdisp *= 2; svga->htotal *= 2; - svga->hblankstart = ((svga->hblankstart - 1) * 2) + 1; + svga->hblankstart *= 2; svga->hblank_end_val *= 2; }