From f85c6fdf4f370f9de3f37ba0420b28f0d5539718 Mon Sep 17 00:00:00 2001 From: smf- Date: Sat, 6 Apr 2013 12:50:25 +0000 Subject: [PATCH] psxgpu_device::update_screen clears the border area. [smf] --- src/emu/video/psx.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/emu/video/psx.c b/src/emu/video/psx.c index e1bc9497a94..3a6178be8f3 100644 --- a/src/emu/video/psx.c +++ b/src/emu/video/psx.c @@ -665,8 +665,11 @@ UINT32 psxgpu_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap, } else { - /* todo: draw top border */ n_y = 0; + + /* draw top border */ + rectangle clip(cliprect.left(), cliprect.right(), cliprect.top(), n_top); + bitmap.fill(0, clip); } if( ( n_gpustatus & ( 1 << 0x16 ) ) != 0 ) { @@ -679,7 +682,9 @@ UINT32 psxgpu_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap, } else { - /* todo: draw bottom border */ + /* draw bottom border */ + rectangle clip(cliprect.left(), cliprect.right(), n_y + n_top + n_lines, cliprect.bottom()); + bitmap.fill(0, clip); } n_left = ( ( (INT32)n_horiz_disstart - n_overscanleft ) * (INT32)n_screenwidth ) / 2560; @@ -691,8 +696,11 @@ UINT32 psxgpu_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap, } else { - /* todo: draw left border */ n_x = 0; + + /* draw left border */ + rectangle clip(cliprect.left(), n_x + n_left, cliprect.top(), cliprect.bottom()); + bitmap.fill(0, clip); } if( n_columns > n_screenwidth - ( n_x + n_left ) ) { @@ -700,7 +708,9 @@ UINT32 psxgpu_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap, } else { - /* todo: draw right border */ + /* draw right border */ + rectangle clip(n_x + n_left + n_columns, cliprect.right(), cliprect.top(), cliprect.bottom()); + bitmap.fill(0, clip); } if( ( n_gpustatus & ( 1 << 0x15 ) ) != 0 )