[Scummvm-devel] System independent widescreen support

Max Horn max at quendi.de
Tue Apr 28 17:58:51 CEST 2009


[off-topic remark: Please do not start new threads by replying to an  
existing thread. That confuses the threading logic in most email  
clients needlessly. Just copy the email address and write a new email  
using that]

Hi Bertrand,

actually, SDL already has code to automatically insert a  
"pillarbox" (or in fact a "black frame") around the screen surface to  
pad out the requested surface compared to the actual screen size.


I.e., when we request a 320x240 screen, but the lowest available is  
1024x768, then SDL is able to return a "fake" screen surface to us,  
which sits in the middle of the actual screen, surrounded by black  
borders.

Thus, if the video card and displays are "honest", about what  
resolutions they actually support, there is no problem. As soon as  
they start "lying" resp. are simply misconfigured, we run into  
problems. Like, ScummVM not starting up because it sets an unsupported  
screen resolution (note that SDL and hence ScummVM only tries to set  
screen resolutions which the OS tells it are OK... *sigh*).

Now, since often graphics card or screens are indeed misconfigured, it  
would be conceivable to add an option to ScummVM to "force" a certain  
actual resolution (like 1024x768) and then setup our actual screen  
surface as a subsurface of that. I.e., add two options to the config  
file "actual_screen_width" and "..._height" (better names are  
welcome ;), and then modify the SDL backend to honor those if present.  
Patches on the patch tracker for this are welcome.


You also asked what "aspect correction" does in ScummVm. To quote our  
README:
"Most of the games use a 320x200 pixel resolution, which may look  
squashed on modern monitors. Aspect-ratio correction stretches the  
image to use 320x240 pixels instead, or a multiple thereof."

What is going on here is that in the old days, monitors did not have  
square pixels, rather, they were a bit higher than wide. Modern  
displays, however, have square pixels. As a result, the graphics of  
many old games look vertically squashed without ASR.


Cheers,
Max
Max




More information about the Scummvm-devel mailing list