From 48d7c3ad755d377d514bfb3051e34fbb9251dbb1 Mon Sep 17 00:00:00 2001 From: pelya Date: Sun, 24 Nov 2013 22:25:33 +0200 Subject: [PATCH] Proper fix for 4:3 video mode --- project/jni/application/xserver/xserver | 2 +- .../src/video/android/SDL_androidvideo-1.2.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/project/jni/application/xserver/xserver b/project/jni/application/xserver/xserver index b4dd6771e..fe7861416 160000 --- a/project/jni/application/xserver/xserver +++ b/project/jni/application/xserver/xserver @@ -1 +1 @@ -Subproject commit b4dd6771eb3d6e2e9f062373776cb9a20b187949 +Subproject commit fe78614169fb8dc6fccadf5bec3f722c129b968a diff --git a/project/jni/sdl-1.2/src/video/android/SDL_androidvideo-1.2.c b/project/jni/sdl-1.2/src/video/android/SDL_androidvideo-1.2.c index 9205e665d..11c07f31d 100644 --- a/project/jni/sdl-1.2/src/video/android/SDL_androidvideo-1.2.c +++ b/project/jni/sdl-1.2/src/video/android/SDL_androidvideo-1.2.c @@ -388,10 +388,17 @@ SDL_Surface *ANDROID_SetVideoMode(_THIS, SDL_Surface *current, SDL_ANDROID_sWindowHeight = SDL_ANDROID_sRealWindowHeight; SDL_ANDROID_ForceClearScreenRectAmount = 0; - if( SDL_ANDROID_ScreenKeep43Ratio && - (float)width / (float)height < (float)SDL_ANDROID_sWindowWidth / (float)SDL_ANDROID_sWindowHeight ) + if( SDL_ANDROID_ScreenKeep43Ratio ) { - SDL_ANDROID_sWindowWidth = (SDL_ANDROID_sFakeWindowWidth * SDL_ANDROID_sRealWindowHeight) / SDL_ANDROID_sFakeWindowHeight; + { + if( (float)width / (float)height < (float)SDL_ANDROID_sWindowWidth / (float)SDL_ANDROID_sWindowHeight ) ) + SDL_ANDROID_sWindowWidth = (SDL_ANDROID_sFakeWindowWidth * SDL_ANDROID_sRealWindowHeight) / SDL_ANDROID_sFakeWindowHeight; + else + // Force 4:3 ratio, with black borders at the left/right, + // this is needede for Uae4all2, which has 640x256 video mode, + // and expects those 256 pixels to stretch 2x height like on a TV interlaced display. + SDL_ANDROID_sWindowWidth = SDL_ANDROID_sWindowHeight * 4 / 3; + SDL_ANDROID_TouchscreenCalibrationWidth = SDL_ANDROID_sWindowWidth; SDL_ANDROID_ForceClearScreenRectAmount = 2; }