aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/graphics/screen.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp
index 04184cee09..207c459687 100644
--- a/engines/sci/graphics/screen.cpp
+++ b/engines/sci/graphics/screen.cpp
@@ -37,15 +37,22 @@ GfxScreen::GfxScreen(ResourceManager *resMan, int16 width, int16 height, bool up
_resMan(resMan), _width(width), _height(height), _upscaledHires(upscaledHires) {
_pixels = _width * _height;
-
_displayWidth = _width;
_displayHeight = _height;
+
if (_upscaledHires) {
_displayWidth *= 2;
_displayHeight *= 2;
+
+#ifdef ENABLE_SCI32
+ // SCI32 also corrects the aspect ratio when upscaling the resolution.
+ // This is especially needed in GK1, as the credits video is 640x480.
+ if (getSciVersion() >= SCI_VERSION_2)
+ _displayHeight = _displayHeight * 6 / 5;
+#endif
}
- _displayPixels = _displayWidth * _displayHeight;
+ _displayPixels = _displayWidth * _displayHeight;
_visualScreen = (byte *)calloc(_pixels, 1);
_priorityScreen = (byte *)calloc(_pixels, 1);
_controlScreen = (byte *)calloc(_pixels, 1);