[Scummvm-devel] System independent widescreen support
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
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
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
"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.
More information about the Scummvm-devel