2D games and LCD widescreens

Miscellaneous Forums/General Discussion/2D games and LCD widescreens

I've been browsing the forums for info on how Blitz+ games, using the 800x600 ( or variations of that ratio ) would appear on LCD screens using 1680x1050, but I'm still a little in the dark...

Would they play at all?
Would they play, but have a band on either side, with the game in the middle of the screen?
Would it be up to the monitor, or the graphics card to support the 800x600 format? If it all?

any info appreciated ;)

1) Yes.
2) Depending on the monitor and the driver settings, they might.
3) Essentially, yes, but it's more a case of deciding how they support it, more than if they support it. It might be stretched, it might have black bars, and it will definitely be a bit blurry ( unless it's not scaled at all ) but it should pretty much universally work in some fashion.

How such a game looks depends on two factors.

1. Graphic card settings.
2. Monitor settings.

Both my nVidia card and my Dell monitor have options to display resolutions such as 800x600 either as 1:1 pixels (i.e. a small display area in the middle of the monitor), full-screen (with a horizontal stretch) or as big as possible whilst maintaining the original aspect (black borders at the sides).

None of this can be controlled within the game. The only way you can control this within your game is to open your screen at the same resolution as the Windows desktop and code your own stretch/enlarge routine. Arguably this can give better results for certain games, as you can avoid bilinear filtering to give a more pixellated look.

I just got a widescreen monitor myself, and found that the monitor's factory settings are to stretch it to fill the entire screen, but there is also a setting to maintain the aspect ratio in which case it draws black bars on the sides.

I guess it's one of those "anything may happen" deals, and since it can be either the computer or the monitor on its own making the decision, there's no real way to check programmatically check and find out what the user would see...

By default, the choice goes the monitor, which depending on the model stretches the screen or adds black stripes (the most popular choice is to stretch the screen). The user could then force the visualization with the video card control panel (I'm sure it's possible with an nVidia, I don't remember with ATI, and I don't know if all monitors support it).

Since LCD monitors only have one native resolutions and adapt all the others with upscaling or centering, they actually handle a great deal of resolutions... certainly you won't have problems supporting 800x600. However, to my knowledge at the moment the most common resolution is 1024x768.

Generally, if the upscaling is left to the monitor, the results are poor. It takes processing power to apply upscaling at 60Hz. Cheap monitor = cheap upscaling.

This is why your gfx drivers have an option to do the upscaling, they do a much better job of it!

However, to my knowledge at the moment the most common resolution is 1024x768.


Um... How many years ago? On a 15" LCD perhaps, but for 17" and 19", typical native resolution for non-widescreen is 1280x1024, and typical res for widescreen is 1440x900.

You won't find many screens with a native resolution of 1024x768 anymore.

For 22" (widescreen only) it's 1650x1050, and 24" is 1920x1200.

1920x1200 is getting more and more popular, it seems.

Dell and Sony are doing a bit of trend-bucking though, they have 1920x1080 products. Both standalone and built in to laptops.

Dell and Sony are doing a bit of trend-bucking though, they have 1920x1080 products. Both standalone and built in to laptops.


The advantage of the 1080 ones is that it matches HDTV, so it's the optimum vertical resolution to play BluRay and the likes. Also, less pixels = cheaper to produce.

thanks for the really helpful replies, everyone...

I guess I just have to track down some widescreen monitors and do some testing...

Um... How many years ago? On a 15" LCD perhaps, but for 17" and 19", typical native resolution for non-widescreen is 1280x1024, and typical res for widescreen is 1440x900.

I mean the most diffused resolution, that is the combination of the monitors most commonly found in houses, and the resolution they are set on (you would see surprised to see how many users don't use native resolution on their desktop, often just to have bigger icons and fonts).

Here you can find two aggregators worth of notice:
http://unity3d.com/webplayer/hwstats/pages/web-2008Q4-desktop.html (casual gaming)
http://www.steampowered.com/status/survey.html (hardcore gaming, slightly surpassed by 1280x960)

Personally, I never liked the 1280x1024 res: it's an atypical aspect ratio, one which you will not find in any other resolution.

I'm using a Samsung 32" widesscreen TV as monitor with the native resolution 1360x768.

800x600 is stretched as well on my screen and it looks a bit blurry only, but I had some troubles with 640x480 that some parts where missing on the sides. Solved that by tweaking my GFX card.

Besides that I would advise to write some code so everyone can choose their native resolution for best quality. I think most people prefer to play their games in native resolution when using a LCD monitor.

Mark, most casual gamers would not likely know what the term 'native resolution' even means.

Mark, most casual gamers would not likely know what the term 'native resolution' even means.


Agree, but they still will know the difference between a blurry and sharp image.

My goal in my future games is that first time you start it the game will use the desktop resolution. And ofcourse the option to choose the preferred resolution if needed.

It appears there is a gap in the market for a routine which queries the monitor for its native resolution.

LCD's do report this back to the graphics driver, so there's a way of finding it.

I've just bought a wilde screen monitor and I can't strech keeping the aspect ratio :(

Another problem with game coding for PC !

It appears there is a gap in the market for a routine which queries the monitor for its native resolution.


It does appear that there are some EDID/DDC API's out there, so I guess technically it ought to be possible.... Brucey? ;-)

but aside from the DDC information:

For LCD's, the native resolution is typically the maximum supported resolution, which is something that you can find out by going through the list of supported resolutions from within Blitz.

Of course, that leaves the problem that on CRT's you may end up switching to something ridiculously high, since there is no real 'native resolution' on those.
I guess you may be able to tell CRTs apart from LCDs by comparing the refresh rates: LCD's appear very limited, with most of them just doing 60 and others ranging between 60 and 75Hz. (mine does 59 and 60, it claims)
Especially at the lower resolutions, CRTs can reach *much* higher refresh rates (85, 100, 100+), so you can make an educated guess....

That leaves systems with old pre-DDC CRTs without the proper monitor drivers installed, you're completely shooting in the dark there.

I've just bought a wilde screen monitor and I can't strech keeping the aspect ratio :(


The whole point of *stretching* is that you... s.t.r.e.t.c.h. instead, which by definition doesn't keep the aspect ratio... :-?

Anyway, on my Samsung SyncMaster 2443bwx there is a setting in the monitors on-screen-display configuraiton where I can switch between 'widescreen' and 'automatic' mode. In widescreen, if will stretch a (for example) 800x600 screen to fill the entire panel, stretching the contents. In 'automatic' mode, it will fill the display vertically, but put black bars on the left and right sides keeping the original aspect ratio.

If your display itself doesn't support it, check your display settings.
I have an ATI card myself, and in the ATI catalyst configuration settings I can specify what I want it to do:
Maintain Aspect Ratio, or Scale Image to Full Panel Size.

Hmmmm... Under Windows, it appears that it stores the EDID information in the registry, as a binary blob. I'm playing around with it a little, and so far have succesfully parsed out the following:


Input Connector: Digital
Screen Width in cm: 52
Screen Height in cm: 32
Screen Size in inches: 24.0
Display Gamma: 2.2
Serial Number: HVZ<snip>
Monitor Name: SyncMaster
Manufactured: week 26 of 2008

1600x1200 (4:3)
1280x1024 (5:4)
1280x960 (4:3)

Minimum Vertical Frequency: 56Hz
Maximum Vertical Frequency: 60Hz
Minimum Horizontal Frequency: 30KHz
Maximum Horizontal Frequency: 81KHz
Pixel Clock (Video Bandwidth): 170MHz



EDIT: Great.... It appears that the EDID info isn't very reliable either, in practice. The EDID info on my particular monitor doesn't make any reference to 1920x1200, but instead lists 1600x1200 as the maximum (and preferred) resolution. Hooray.
Some googling around shows a lot of monitors with incorrect/incomplete info, so this won't be much good either...

(Although being able to read the actual screen dimensions in cm/inch may come in handy, and one can of course calculate the aspect ratio based on those)

Since I'm currently reading this out of the registry there is one more thing to resolve: programmatically determining which screen windows is actively using. I currently have two registry branches where I can find screen info: one for my 24" LCD, and another one for my old 19" one which is no longer connected to the PC.

The whole point of *stretching* is that you... s.t.r.e.t.c.h. instead, which by definition doesn't keep the aspect ratio... :-?

1680x1050 is the same as 960x600 is the same as 8x5 (16:10).

The EDID info on my particular monitor doesn't make any reference to 1920x1200, but instead lists 1600x1200 as the maximum (and preferred) resolution. Hooray.

There is something strange going on within Windows (or DirectX9) where there is some sort of 1600 pixel limit for whatever reason. Spore (amongst others) recommends a game res under 1600xwhatever as anything larger can cause problems/crashes/I don't know; it seems to run fine for me. Well as fine as Spore normally runs I presume.

Still, I'm wondering if that is linked somehow or if it is plain coincedence.

I may still be missing something -- I tried several EDID parsers, and some of them show 1600x1200 as the max res, and others do state 1920x1200... Either there is some other way to determine the info that I haven't uncovered yet, or they're comparing the monitor info to a known database or something... The search continues.

Got it. :-)

It appears that the native res is also encoded seperately, with the byte value split up into multiple locations, making it harder to find. On some monitors it's listed seperately as a supported resolution, but apparently not on others. This is the info I've managed to obtain so far on my computer:


EDID Version: 1.3
Monitor Name: SyncMaster
Serial Number: HVZ<snip>
Manufactured: 2008 week 26
Input Type: Digital
Screen Width in cm: 52
Screen Height in cm: 32
Screen Size in inches: 24.0
Display Gamma: 2.20

1600x1200 (4:3)
1280x1024 (5:4)
1280x960 (4:3)

Native Pixel Clock: 154MHz
Horizontal Native Resolution: 1920
Vertical Native Resolution: 1200

Minimum Vertical Frequency: 56Hz
Maximum Vertical Frequency: 60Hz
Minimum Horizontal Frequency: 30KHz
Maximum Horizontal Frequency: 81KHz
Max Pixel Clock (Video Bandwidth): 170MHz
Start Horizontal Frequency: 64KHz



After changing my active resolution to 1440x900 and rebooting windows the program still shows 1920x1200 as the native res, so it doesn't appear to just show the current resolution. Maybe I'll try to wrap this up a bit, and post a test version to see if other people are getting proper results too.

EDIT: Have some more information now, including a test program to see if it's accurate on other computers as well. See http://www.blitzbasic.com/Community/posts.php?topic=81277 for more info.