2007/08/26

Analog Fixed Aspect Ratio Howto

A couple months ago I bought a wonderful AOC 2110S widescreen analog LCD display, featuring 1680x1050 native resolution and automatic adjustment. Everything about this monitor is perfect: great colors, crisp text and plenty of widescreen to use Windows Vista's sidebar but games with no support for widescreen aspect ratio are displayed in their low resolution of choice automoatically stretched to cover the whole screen; the result is an out of proportion, slightly blury image.

There has to be a way to avoid this aspect ratio scaling I thought. I remember that on notebooks, switching to lower than native display resolutions gets a picture centered in the display with the requested pixel dimensions framed by black borders. That's fixed aspect ratio with no scaling. Something that I could not achieve in this AOC monitor because the on-screen "Auto Adjust" option cannot be disabled, so no matter which low resolution you set, the display internals will auto adjust the image to fill the whole screen, stretching the aspect ratio of the resolution.

My video card is an Nvidia GeForce 7300 GT. Browsing in various forums I read that Nvidia drivers have an option to set fixed aspect ratio scaling but this is only available for digital displays, it does not even appear as a locked greyed out option when using an analog display like mine. That would be the best option to get a non widescreen resolution while maximizing its size by scaling up, maintaining the aspect ratio.

So, I looked further and finally found the right tool for the task, a little program called PowerStrip, which allows me to set a lower than native non widescreen resolution framed by a black border and prevent up scale by the display internals. Moreover, you can save a setting to automatically switch to that lower unscaled resolution when launching a specific game or application and revert to your default native resolution upon closing the game.

Let's use the game Bejeweled 2 Deluxe as an example of a game with no support for widescreen resolution and get it to display in 1024x768 pixels whenever it is launched.

First I will set some common PowerStrip options:
  1. Run Powerstrip, click its icon in the Windows' system tray, click Options, click Preferences and check the options "Auto-load with Windows" and "Restore setting on startup"
  2. Back to Options, click "Desktop icons" and click "Save icons placement", this will allow to restore your icons placement should a switch to a lower resolutions displace your desktop icons.
  3. Back to Options click "Tip of the day"; if you have a registered copy of PowerStrip you can disable tip of the day pop up at startup. Unregistered copies will add an incremental wait period before the tip of the day window can be closed.
Next I will create the display profile to get a 1024x768 unscaled resolution:
  1. Back to PowerStrip menu click "Display profiles", then "Configure", uncheck all Options and click "Advanced timing options"
  2. Uncheck all Synchronization and Options options except for "Real-time adjustment" and click "Custom resolutions"
  3. Check "Lock total geometry" and click the ruler and square icon above the Close button
  4. Resize the black windows until the value displayed in its upper left border reaches 1024x768 exactly
  5. Center the window in the display by draggin with the mouse and click OK
  6. Back in the Customs resolutions window click "Add new resolution" and accept the display to swtich to the new resolution, then click Close
  7. Back to the Advanced timing options windows click Apply or OK as applicable
  8. Back in the Display profiles window click on "Save as" and type a name for your new resolution, then click OK. Now you can revert to your Display defaults
Finally I will create the application profile for Bejeweled to use the latter display resolution whenever it is launched.
  1. Open PowerStrip menu, click "Application profiles" then "Configure"
  2. Locate the game executable or shortcut and check "Apply this profile whenever the program starts"
  3. Click the display profiles drop down box and select the custom resolution created above
  4. Click "Save as" and name your application profile
Now you can launch Bejeweled from Windows Vista games menu or PowerStrip application profiles menu and it will run in unscaled non widescreen fixed aspect ratio 1024x768 resolution as intended and the display will revert to the native widescreen resolution when you close the game. Isn't it cool!?

Update (2007-10-6): Finally, I decided to uninstall Powerstrip because it frequently caused my PC to shut down while loading Windows Vista after it has been reboot.