summaryrefslogtreecommitdiff
path: root/plugins/dfxvideo/draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/dfxvideo/draw.c')
-rw-r--r--plugins/dfxvideo/draw.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/plugins/dfxvideo/draw.c b/plugins/dfxvideo/draw.c
index 3b477b10..2c26c2b6 100644
--- a/plugins/dfxvideo/draw.c
+++ b/plugins/dfxvideo/draw.c
@@ -1352,9 +1352,13 @@ void BlitScreen32(unsigned char *surf, int32_t x, int32_t y)
if (PreviousPSXDisplay.Range.y0) // centering needed?
{
- memset(surf, 0, PreviousPSXDisplay.Range.y0 * lPitch);
- surf += PreviousPSXDisplay.Range.y0 * lPitch;
+ memset(surf, 0, (PreviousPSXDisplay.Range.y0 >> 1) * lPitch);
+
dy -= PreviousPSXDisplay.Range.y0;
+ surf += (PreviousPSXDisplay.Range.y0 >> 1) * lPitch;
+
+ memset(surf + dy * lPitch,
+ 0, ((PreviousPSXDisplay.Range.y0 + 1) >> 1) * lPitch);
}
if (PreviousPSXDisplay.Range.x0)
@@ -1414,9 +1418,13 @@ void BlitToYUV(unsigned char * surf,int32_t x,int32_t y)
if (PreviousPSXDisplay.Range.y0) // centering needed?
{
- memset(surf, 0, PreviousPSXDisplay.Range.y0 * lPitch);
- surf += PreviousPSXDisplay.Range.y0 * lPitch;
+ memset(surf, 0, (PreviousPSXDisplay.Range.y0 >> 1) * lPitch);
+
dy -= PreviousPSXDisplay.Range.y0;
+ surf += (PreviousPSXDisplay.Range.y0 >> 1) * lPitch;
+
+ memset(surf + dy * lPitch,
+ 0, ((PreviousPSXDisplay.Range.y0 + 1) >> 1) * lPitch);
}
if (PreviousPSXDisplay.Range.x0)