VOGONS


Fake fullscreen issues

Topic actions

First post, by Ichisich

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2026-04-03, 16:30:
I looked into the code responsible for handling fake and real fullscreen screen modes in dgVoodoo, and I did some fixes (but not […]
Show full quote

I looked into the code responsible for handling fake and real fullscreen screen modes in dgVoodoo, and I did some fixes (but not many testings, I did it in a kind of rush):

  • Now fake fullscreen fully resembles the behaviour of real fullscreen.
    Except that fake fullscreen cannot handle "Centered", "Stretched" scaling modes, those are mapped to "Unspecified". But unspecified now does resolution changing when needed, as with real fullscreen.
    So, the difference between real/fake is
    - fake rendering window does not get kicked out of fullscreen state when it is obscured by other windows
    - fake fullscreen can get into "not responding" state if a game is not responding because of a long loading stage and isn't pumping the message queue
  • It might fix the annoying window-resize problem, when the fullscreen window becomes small in the corner of the screen

Would it be possible to implement a [Ignore refreshrate] setting in the fullscreen mode attributes section?
Now, with the changes in 2.87.1, many old games default the display to low arbitrary refreshrates.

Reply 1 of 5, by Dege

User metadata
Rank l33t
Rank
l33t
Ichisich wrote on 2026-04-18, 16:48:
Dege wrote on 2026-04-03, 16:30:
I looked into the code responsible for handling fake and real fullscreen screen modes in dgVoodoo, and I did some fixes (but not […]
Show full quote

I looked into the code responsible for handling fake and real fullscreen screen modes in dgVoodoo, and I did some fixes (but not many testings, I did it in a kind of rush):

  • Now fake fullscreen fully resembles the behaviour of real fullscreen.
    Except that fake fullscreen cannot handle "Centered", "Stretched" scaling modes, those are mapped to "Unspecified". But unspecified now does resolution changing when needed, as with real fullscreen.
    So, the difference between real/fake is
    - fake rendering window does not get kicked out of fullscreen state when it is obscured by other windows
    - fake fullscreen can get into "not responding" state if a game is not responding because of a long loading stage and isn't pumping the message queue
  • It might fix the annoying window-resize problem, when the fullscreen window becomes small in the corner of the screen

Would it be possible to implement a [Ignore refreshrate] setting in the fullscreen mode attributes section?
Now, with the changes in 2.87.1, many old games default the display to low arbitrary refreshrates.

Only the fake fullscreen path has been changed, and now it takes refresh rates into account just like regular fullscreen.
You can force a high refresh rate through dgVoodoo, preventing the game from choosing anything else.
But, indeed, instead of defining a specific numerical value, it'd be cool to have a refresh rate option "desktop" to force the current desktop refresh rate whatever it is.
(I guess your desktop is displayed at some high refresh rate like 120/240Hz but the game picks up a low refresh rate like 60Hz.)

Reply 2 of 5, by Macron

User metadata
Rank Newbie
Rank
Newbie
Ichisich wrote on 2026-04-18, 16:48:

Now, with the changes in 2.87.1, many old games default the display to low arbitrary refreshrates.

With "B5 into the fire" alpha game I also noticed some resolution problems. With 2.87 when I started the game with incorrect display settings in game config, it set default to 640x480, then I pressed F12 to choose optimal resolution, selected it, and the new resolution has been applied within few seconds. With 2.87.1 after selecting new resolution, display reacts as if it was changed, but in fact it remains 640x480 until closing and full restart of the game.

Reply 3 of 5, by Dege

User metadata
Rank l33t
Rank
l33t

But I guess all this happens with Fake fullscreen enabled, because only fake fullscreen behaviour has changed in 2.87.1.
If you set the scaling mode to "stretched, keep aspect ratio" then it should work as before. Aside from the refresh rate thing because it is also set now, like in real fullscreen.

Reply 4 of 5, by Macron

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2026-05-05, 21:30:

If you set the scaling mode to "stretched, keep aspect ratio" then it should work as before.

Now works better. But it always uses the desktop resolution as maximum possible. For example, if the desktop is "1024 x 768", and in game you set "1280 x 1024", the real resolution would be "1024 x 768", even after game restart.

Reply 5 of 5, by Dege

User metadata
Rank l33t
Rank
l33t
Macron wrote on 2026-05-06, 08:11:
Dege wrote on 2026-05-05, 21:30:

If you set the scaling mode to "stretched, keep aspect ratio" then it should work as before.

Now works better. But it always uses the desktop resolution as maximum possible. For example, if the desktop is "1024 x 768", and in game you set "1280 x 1024", the real resolution would be "1024 x 768", even after game restart.

If your desktop is 1024x768 (either being set to be that at OS level or forced through GeneralExt\DesktopResolution) then dgvoodoo will downscale the 1280 x 1024 image to 1024 x 768.
The point of scaling mode 'Stretched, keep AR' is to leave the desktop resolution as is (or change it to GeneralExt\DesktopResolution if defined) and then upscale/downscale the output image to that resolution.