diff --git a/src/video/vid_voodoo_display.c b/src/video/vid_voodoo_display.c index a3548920a..3a7df1ab3 100644 --- a/src/video/vid_voodoo_display.c +++ b/src/video/vid_voodoo_display.c @@ -525,7 +525,7 @@ void voodoo_callback(void *p) if (draw_voodoo->dirty_line[draw_line]) { - uint32_t *p = &((uint32_t *)buffer32->line[voodoo->line])[32]; + uint32_t *p = &buffer32->line[voodoo->line + 8][8]; uint16_t *src = (uint16_t *)&draw_voodoo->fb_mem[draw_voodoo->front_offset + draw_line*draw_voodoo->row_width]; int x; @@ -539,6 +539,10 @@ void voodoo_callback(void *p) if (voodoo->line > voodoo->dirty_line_high) voodoo->dirty_line_high = voodoo->line; + /* Draw left overscan. */ + for (x = 0; x < 8; x++) + buffer32->line[voodoo->line + 8][x] = 0x00000000; + if (voodoo->scrfilter && voodoo->scrfilterEnabled) { uint8_t fil[(voodoo->h_disp) * 3]; /* interleaved 24-bit RGB */ @@ -560,6 +564,10 @@ void voodoo_callback(void *p) p[x] = draw_voodoo->video_16to32[src[x]]; } } + + /* Draw right overscan. */ + for (x = 0; x < 8; x++) + buffer32->line[voodoo->line + 8][voodoo->h_disp + x + 8] = 0x00000000; } } }