From c551230a8e4142cf066416783abdd9a19779a56d Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Sat, 27 Sep 2014 13:18:56 +0700 Subject: [PATCH] Double VI.height in interlaced mode when yScale = 1. This fixes frame buffer height for Star Wars Ep.1 Racer. Not sure that this solution is correct! --- VI.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/VI.cpp b/VI.cpp index dd183eff..90228323 100644 --- a/VI.cpp +++ b/VI.cpp @@ -29,7 +29,10 @@ void VI_UpdateSize() VI.interlaced = (*REG.VI_STATUS & 0x40) != 0; VI.width = (hEnd - hStart) * xScale; - VI.real_height = (vEnd - vStart) * yScale; + if (VI.interlaced && _SHIFTR(*REG.VI_Y_SCALE, 0, 12) == 1024) + VI.real_height = (vEnd - vStart) << 1; + else + VI.real_height = (vEnd - vStart) * yScale; VI.height = VI.real_height*1.0126582f; if (VI.vStart == 0) {