From dd25191b903eefaa7cbbd8b2af643a1809e5cb4b Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 17 Oct 2020 20:00:11 +0300 Subject: [PATCH] Move horizontal doubling to common code. --- pcem/vid_cl5429.cpp | 30 ++++++------------------------ pcem/vid_s3.cpp | 25 +++++-------------------- pcem/vid_s3_virge.cpp | 25 +++++-------------------- pcem/vid_svga.cpp | 13 +++++++++++++ 4 files changed, 29 insertions(+), 64 deletions(-) diff --git a/pcem/vid_cl5429.cpp b/pcem/vid_cl5429.cpp index 7ad082dc..ee0b61e8 100644 --- a/pcem/vid_cl5429.cpp +++ b/pcem/vid_cl5429.cpp @@ -1158,10 +1158,7 @@ void gd5429_recalctimings(svga_t *svga) svga->horizontal_linedbl = svga->dispend * 9 / 10 >= svga->hdisp; if (svga->seqregs[7] & 0x01) { - if (svga->horizontal_linedbl) - svga->render = svga_render_8bpp_lowres; - else - svga->render = svga_render_8bpp_highres; + svga->render = svga_render_8bpp_highres; } svga->ma_latch |= ((svga->crtc[0x1b] & 0x01) << 16) | (((svga->crtc[0x1b] >> 2) & 3) << 17); @@ -1178,35 +1175,23 @@ void gd5429_recalctimings(svga_t *svga) switch (gd5429->hidden_dac_reg & 0xf) { case 0x0: - if (svga->horizontal_linedbl) - svga->render = svga_render_15bpp_lowres; - else - svga->render = svga_render_15bpp_highres; + svga->render = svga_render_15bpp_highres; svga->bpp = 15; break; case 0x1: - if (svga->horizontal_linedbl) - svga->render = svga_render_16bpp_lowres; - else - svga->render = svga_render_16bpp_highres; + svga->render = svga_render_16bpp_highres; svga->bpp = 16; break; case 0x5: if (gd5429->type >= CL_TYPE_GD5434 && (svga->seqregs[7] & 8)) { - if (svga->horizontal_linedbl) - svga->render = svga_render_32bpp_lowres; - else - svga->render = svga_render_32bpp_highres; + svga->render = svga_render_32bpp_highres; svga->bpp = 32; svga->rowoffset *= 2; } else { - if (svga->horizontal_linedbl) - svga->render = svga_render_24bpp_lowres; - else - svga->render = svga_render_24bpp_highres; + svga->render = svga_render_24bpp_highres; svga->bpp = 24; } break; @@ -1214,10 +1199,7 @@ void gd5429_recalctimings(svga_t *svga) } else { - if (svga->horizontal_linedbl) - svga->render = svga_render_15bpp_lowres; - else - svga->render = svga_render_15bpp_highres; + svga->render = svga_render_15bpp_highres; svga->bpp = 15; } } diff --git a/pcem/vid_s3.cpp b/pcem/vid_s3.cpp index 030dc59a..ab43dcde 100644 --- a/pcem/vid_s3.cpp +++ b/pcem/vid_s3.cpp @@ -1259,37 +1259,22 @@ void s3_recalctimings(svga_t *svga) switch (svga->bpp) { case 8: - if (svga->horizontal_linedbl) - svga->render = svga_render_8bpp_lowres; - else - svga->render = svga_render_8bpp_highres; + svga->render = svga_render_8bpp_highres; break; case 15: - if (svga->horizontal_linedbl) - svga->render = svga_render_15bpp_lowres; - else - svga->render = svga_render_15bpp_highres; + svga->render = svga_render_15bpp_highres; svga->hdisp /= 2; break; case 16: - if (svga->horizontal_linedbl) - svga->render = svga_render_16bpp_lowres; - else - svga->render = svga_render_16bpp_highres; + svga->render = svga_render_16bpp_highres; svga->hdisp /= 2; break; case 24: - if (svga->horizontal_linedbl) - svga->render = svga_render_24bpp_lowres; - else - svga->render = svga_render_24bpp_highres; + svga->render = svga_render_24bpp_highres; svga->hdisp /= 3; break; case 32: - if (svga->horizontal_linedbl) - svga->render = svga_render_32bpp_lowres; - else - svga->render = svga_render_32bpp_highres; + svga->render = svga_render_32bpp_highres; if (s3->chip != S3_TRIO32 && s3->chip != S3_TRIO64) svga->hdisp /= 4; break; diff --git a/pcem/vid_s3_virge.cpp b/pcem/vid_s3_virge.cpp index b029b991..f52aeb0b 100644 --- a/pcem/vid_s3_virge.cpp +++ b/pcem/vid_s3_virge.cpp @@ -607,34 +607,19 @@ static void s3_virge_recalctimings(svga_t *svga) switch (svga->bpp) { case 8: - if (svga->horizontal_linedbl) - svga->render = svga_render_8bpp_lowres; - else - svga->render = svga_render_8bpp_highres; + svga->render = svga_render_8bpp_highres; break; case 15: - if (svga->horizontal_linedbl) - svga->render = svga_render_15bpp_lowres; - else - svga->render = svga_render_15bpp_highres; + svga->render = svga_render_15bpp_highres; break; case 16: - if (svga->horizontal_linedbl) - svga->render = svga_render_16bpp_lowres; - else - svga->render = svga_render_16bpp_highres; + svga->render = svga_render_16bpp_highres; break; case 24: - if (svga->horizontal_linedbl) - svga->render = svga_render_24bpp_lowres; - else - svga->render = svga_render_24bpp_highres; + svga->render = svga_render_24bpp_highres; break; case 32: - if (svga->horizontal_linedbl) - svga->render = svga_render_32bpp_lowres; - else - svga->render = svga_render_32bpp_highres; + svga->render = svga_render_32bpp_highres; break; } } diff --git a/pcem/vid_svga.cpp b/pcem/vid_svga.cpp index 5de0adc3..7db56ac6 100644 --- a/pcem/vid_svga.cpp +++ b/pcem/vid_svga.cpp @@ -451,6 +451,19 @@ void svga_recalctimings(svga_t *svga) if (svga->vblankstart < svga->dispend) svga->dispend = svga->vblankstart; + if (svga->horizontal_linedbl) { + if (svga->render == svga_render_8bpp_highres) + svga->render = svga_render_8bpp_lowres; + if (svga->render == svga_render_15bpp_highres) + svga->render = svga_render_15bpp_lowres; + if (svga->render == svga_render_16bpp_highres) + svga->render = svga_render_16bpp_lowres; + if (svga->render == svga_render_24bpp_highres) + svga->render = svga_render_24bpp_lowres; + if (svga->render == svga_render_32bpp_highres) + svga->render = svga_render_32bpp_lowres; + } + crtcconst = svga->clock * svga->char_width; disptime = svga->htotal; -- 2.47.3