Best resolution for a PC intro

category: general [glöplog]
I'm coding my first DirectX intro, with simple oldschool 2D effects. What numbers should I pass to SetDisplayMode() ?
Pixels should be square on the now-common widescreens, yet I want the intro work on 1024x768 displays, too.
added on the 2009-03-12 15:24:47 by 0xF 0xF
any resolution that the system supports?
If you can't scale, use 320x240
While viznut is most likely just trolling, we used to run Excess-demos in 320x240 a few years back - looked ace ;)
added on the 2009-03-12 15:33:34 by gloom gloom
0xF: feel free to use a mode selection dialog
added on the 2009-03-12 15:42:56 by Gargaj Gargaj
use desktop resolution.
added on the 2009-03-12 16:02:59 by pommak pommak
Why not just using the screen resolution?
added on the 2009-03-12 16:07:30 by xernobyl xernobyl

LICENSE: Feel free to use this code without any obligation, just make the end product good.

added on the 2009-03-12 16:28:07 by raer raer
there's always a catch :P
added on the 2009-03-12 16:50:51 by Gargaj Gargaj
About SetDisplayMode(), be careful about the bit depth. If you use 16 bits or lower, you will have unexpected results while using RGB colors. Use 24 bits for correct RGB results. If you like to use alpha channel as well, 32 bits is what you need.

You may already know about these, I wanted to warn you just in case.

Resolution is completely up to you. If you are too lazy to add supported resolution detection and stuff, just use the return value from SetDisplayMode(). Easiest thing to do is to popup a message saying "Your display adapter doesn't support this mode. Shame on you!" ;)
added on the 2009-03-12 16:56:34 by Skate Skate
what Gargaj said, or desktop resolution <3
added on the 2009-03-12 17:33:46 by nystep nystep
the way we do it is to have a list:

first (and by default) is 1280x720
then the desktop resolution (in my case 1920x1200)

then all resolutions from 640x480 and over .User can select windowed or not. If so, they have an option to stretch window at 16:9 ratio, which is preferable.

ps. Our latest demo runs at cinemascope 2.35 : 1 . Shame there isn't any hardware to support it out there, it does look quite nice like that :-)
added on the 2009-03-12 17:38:19 by Navis Navis
The easiest way to make an intro be displayed correctly both on standard and wide screens seems to be to disable full-screen mode and display it in a window instead.
added on the 2009-03-12 17:42:03 by Adok Adok
A question: Is there a tutorial somewhere on how to properly support all those different aspect rations etc? I'm kind of stuck in last century in that regard and Breakpoint is approaching fast..
added on the 2009-03-12 17:42:21 by Preacher Preacher
Why not just using the screen resolution?

Because it's potentially a major PITA (1080p output + crappy chipset gfx) and also not the "right thing to do" [tm]. A selection window for gfx adapter(s) and supported screen resolutions/bpp is a much more flexible way to do this. Also, it's like 20+ lines of code, so don't be lazy. :)
added on the 2009-03-12 17:49:39 by tomaes tomaes
And about aspect ratio: I would default to 16:9/16:10 or even 2.35:1. People stuck on 4:3 or something else get nice black cinematic bars.
added on the 2009-03-12 17:56:30 by tomaes tomaes
i prefer using the desktop resolution. I used to have hotkeys defined for changing desktop resolution to 640x480 and back to normal :)
added on the 2009-03-12 18:13:34 by jmagic jmagic
I have a resolution select box, and custom aspect ratio. And it defaults to the desktop resolution so I just have to press enter. But if ppl really have a carppy card they'll probably watch a video anyway.
added on the 2009-03-12 19:29:21 by xernobyl xernobyl
Scamp: Thanks. I'll take the time and implement 16:9 for the compo at least, and then make a final version that supports more resolutions. My engine is coded from scratch so it's missing a lot of things :/
added on the 2009-03-12 22:47:20 by Preacher Preacher
By using a squared ratio you will have something working on both 4:3 and 16:9 and much less code!
added on the 2009-03-13 04:29:08 by Hatikvah Hatikvah
my engine works so you authorize the demo in a given aspect ratio, and thats what you work with in the editor. when launching the final exe it checks if the dx can display the authorized aspect ratio, (first by checking if dx also can display the same res as the author resolution).
if it can it tags that as default resolution and aspect ratio.

then im just filling up the resolutions with all resolutions dx can handle (writing the aspect ratio next to it).

then the engine does the rest.
added on the 2009-03-13 11:55:16 by pantaloon pantaloon
oh, and im adding blackborders as needed (if needed).
added on the 2009-03-13 11:56:16 by pantaloon pantaloon
These things gave me a headache some time ago. Say you choose 800x600, fullscreen on a 5:4 aspect monitor. At least my drivers/monitors will then stretch the 800x600 onto the screen, making the pixels non-square. Our setup code will insist on showing a 16:9-formatted letterbox, so in the case above it will have to de-stretch so that the final letterbox will look 16:9 even though (pixel-width / pixel-height) != 16/9.

to do this, you have to know the physical aspect of your monitor, which is given by the user from a drop-down at setuptime. The default aspect is being calculated from the desktop res.

I guess the stretching-assumption is based on experience and may not be god given, so it feels a bit shaky. But I think it´s a reasonable thing to do.
added on the 2009-03-13 12:19:34 by Hyde Hyde