Game Development Community

Fullscreen - changes monitor refresh rate to 60hz

by Gabor Forrai · in Torque Game Engine · 02/06/2004 (12:21 pm) · 9 replies

The topic is the one-line problem definition.
In every display mode from 800*600 to 1280*1024 is switching a monitor into
the flashy 60hz in fullscreen mode.

Another question is, how its possible to swith TGE into higher resolution than 1280 ?
For testing reasons we need the 1600*1200.

#1
02/06/2004 (12:33 pm)
In regards to the refresh rate problem, windows 2000 & xp always switch to 60khz in fullscreen mode (in d3d or opengl). The newest nvidia drivers let you over-ride the settings (and old ones let you over-ride d3d only). I assume ATI cards have something like this also, but I'm not sure.
#2
02/06/2004 (12:46 pm)
In console:
setResolution(width, height, bpp);
bpp is Bits Per Pixel: 32 or 16
#3
02/06/2004 (1:35 pm)
Very simple solution to a very stupid problem:

http://forums.badacid.net/showthread.php?t=265

Basically it changes your registry to say that your MAX refresh rates are the ONLY ones available. So it defaults to those.

Ths CAN be a problem with some games, and is easily turned on and off.
#4
02/06/2004 (1:54 pm)
There is no setResolution function for me.
#5
02/08/2004 (6:53 am)
Thanks guys, im just downloaded the newest 53.04 detonatorforceware and its solved the problem, also the 1600*1200 question.
Its was quite simple, its looks like im looking for always a bigger problem, than its real size :>
#6
02/08/2004 (7:33 am)
Alex Swanson...

Is there a corresponding getResolution function? So that when the application loads, one could retrieve the current bpp setting and then apply it to the new video settings? I don't remember seeing one but that doesn't mean it isn't there... If not, seems like a useful addition.
#7
02/08/2004 (2:59 pm)
I'd check the code behind the options GUI, as it lets you view/change the resolution.
#8
06/25/2004 (9:42 am)
Back on the refresh rate:

in platformWin32\winOGLVideo.cc on or around line 790:
-------------------------------------------------------------------
devMode.dmPelsWidth = newRes.w;
devMode.dmPelsHeight = newRes.h;
devMode.dmBitsPerPel = newRes.bpp;
// set the display frequency (refresh rate)
devMode.dmDisplayFrequency = 85;
// notify the devmode that displayfrequency has been set
devMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL | DM_DISPLAYFREQUENCY;
-------------------------------------------------------------------

This will set the refresh rate to 85. In my version I appended an additional param to the $Pref::Video::Resolution attribute in the prefs.cs script:

$Pref::Video::Resolution = "800 600 32 85";

I carried that through the engine in the Resolution structure as the w, h, and bpp values are.
#9
06/25/2004 (9:59 am)
GetRes();
returns resolution as "800 600 16"

setRes("800 600 16");
Sets the resolution