First post, by Jorpho
- Rank
- l33t++
I was very disappointed recently when I tried to fire up some of Popcap's various games (such as Plants vs Zombies and Bookworm Adventures) under Win 7 x64 bit, only to find that, as long as "3D Acceleration" is enabled in the game's options, the graphics look like utter crap.
It took quite a bit of searching to get to the root of the problem - there are of course plenty of people griping about other x64 compatibility problems, and people griping about how 800x600 sprite-based graphics are an abomination in themselves, and so on. But I eventually found what I was looking for. (Note that "Sexy" refers to "SexyApp", the official name of the PopCap application framework.)
In order to maintain an aspect ratio (widescreen aware), Sexy 1.33 checks the desktop aspect ratio. If the ratio is not 4:3 then the framework uses the desktop resolution and stretches the screen (during the final blit from Back to front).
Unfortunately, it uses DirectX7. The newer drivers for newer cards emulate Dx7 using Dx9 (and Dx10). There is this weird grey area in the Dx7 specification that talks about ARITHMETIC stretching along the Y axis. In the original specification, there was no mention about how to handle the X axis stretching. Most drivers provided automatic ARITHMETIC_X stretching in this case. Newer drivers either don't follow this paradigm or don't support the arithmetic stretching at all.
http://forum.fischeronline.de/index.php?topic=5859.0
In other words, in some cases the games end up looking like crap unless one manually changes the desktop resolution to a 4:3 aspect ratio before running them.
I thought this might be worth mentioning here because perhaps other games suffer from a similar DX7-related problem, and a more convenient solution has been developed? (The forum thread there talks about altering the source code.)