From 2758f3e4f5a790628e803a9c720d41622215ea19 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 29 Apr 2021 04:35:14 +0200 Subject: [PATCH] Reverted the 256 color renderers back to normal. --- src/video/vid_svga_render.c | 73 ++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/src/video/vid_svga_render.c b/src/video/vid_svga_render.c index 8252557d8..aee22a1fe 100644 --- a/src/video/vid_svga_render.c +++ b/src/video/vid_svga_render.c @@ -654,6 +654,77 @@ svga_render_8bpp_lowres(svga_t *svga) uint32_t *p; uint32_t dat; + if ((svga->displine + svga->y_add) < 0) + return; + + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { + p = &buffer32->line[svga->displine + svga->y_add][svga->x_add]; + + if (svga->firstline_draw == 2000) + svga->firstline_draw = svga->displine; + svga->lastline_draw = svga->displine; + + for (x = 0; x <= (svga->hdisp + svga->scrollcache); x += 8) { + dat = *(uint32_t *)(&svga->vram[svga->ma & svga->vram_display_mask]); + + p[0] = p[1] = svga->map8[dat & 0xff]; + p[2] = p[3] = svga->map8[(dat >> 8) & 0xff]; + p[4] = p[5] = svga->map8[(dat >> 16) & 0xff]; + p[6] = p[7] = svga->map8[(dat >> 24) & 0xff]; + + svga->ma += 4; + p += 8; + } + svga->ma &= svga->vram_display_mask; + } +} + + +void +svga_render_8bpp_highres(svga_t *svga) +{ + int x; + uint32_t *p; + uint32_t dat; + + if ((svga->displine + svga->y_add) < 0) + return; + + if (svga->changedvram[svga->ma >> 12] || svga->changedvram[(svga->ma >> 12) + 1] || svga->fullchange) { + p = &buffer32->line[svga->displine + svga->y_add][svga->x_add]; + + if (svga->firstline_draw == 2000) + svga->firstline_draw = svga->displine; + svga->lastline_draw = svga->displine; + + for (x = 0; x <= (svga->hdisp/* + svga->scrollcache*/); x += 8) { + dat = *(uint32_t *)(&svga->vram[svga->ma & svga->vram_display_mask]); + p[0] = svga->map8[dat & 0xff]; + p[1] = svga->map8[(dat >> 8) & 0xff]; + p[2] = svga->map8[(dat >> 16) & 0xff]; + p[3] = svga->map8[(dat >> 24) & 0xff]; + + dat = *(uint32_t *)(&svga->vram[(svga->ma + 4) & svga->vram_display_mask]); + p[4] = svga->map8[dat & 0xff]; + p[5] = svga->map8[(dat >> 8) & 0xff]; + p[6] = svga->map8[(dat >> 16) & 0xff]; + p[7] = svga->map8[(dat >> 24) & 0xff]; + + svga->ma += 8; + p += 8; + } + svga->ma &= svga->vram_display_mask; + } +} + + +void +svga_render_8bpp_tseng_lowres(svga_t *svga) +{ + int x; + uint32_t *p; + uint32_t dat; + if ((svga->displine + svga->y_add) < 0) return; @@ -694,7 +765,7 @@ svga_render_8bpp_lowres(svga_t *svga) void -svga_render_8bpp_highres(svga_t *svga) +svga_render_8bpp_tseng_highres(svga_t *svga) { int x; uint32_t *p;