Late edit: 4- Why do games have a tendency to crash at boot if the chosen ingame resolution is high, like 2560x1440? Thankfully I can use dgVoodoo's forced resolution on top of the ingame lower resolution (ingame resolution usually works up to 1920x1200 or 1920x1440).
Check out the virtual VRAM size set for DirectX rendering. Higher resolution eats up more VRAM and 64MB or 128MB can be too low for high resolutions, as opposed to low-res the games were coded for. 😀
(The debug layer in the spec release gives an error for those situations.)
I also experienced something similar to what Masterotaku reported. I think most people did not notice it because it is very difficult to replicate this error. Most of the games hide natively unsupported resolutions in their internal settings. And most of the new GPUs support almost all resolutions natively. I noticed this error in ScummVM and Star Wars Episode 1 Racer.
In short, the situation is the following:
1) If a game's internal resolution setting is set at a value which does not allow it to run/start on my system natively, I am unable to run it via dgVoodoo no matter which resolution/scaling settings I choose through dgVoodoo control panel. dgVoodoo does not help it to start/run.
2) If a game's internal resolution setting is set at a value which runs/starts on my system natively, it is possible to run it via dgVoodoo and modify resolution/scaling through dgVoodoo. In this case it is possible to force all resolutions and aspect ratios through dgVoodoo, even the ones unsupported natively.
The Details are the following:
My laptop's maximum supported resolution is 1366x768. When I set in game resolution to 1366x768 (or lower values supported by my GPU) through the game's internal settings, and force unsupported resolutions such as 2560×1440 through dgVoodoo control panel, the game works. The game renders at 2560x1440 and dgVoodoo downscales the image to 1366x768.
When I set the resolution to 2560×1440 (or any other value unsupported by my display) through the game's internal settings, the game crashes at boot. I would expect dgVoodoo to help the game to run and just scale the image, but it doesn't. Is it possible to fix this?
You can test this using Star Wars Episode 1 Racer and the custom resolution launcher included in the third party installer linked below. Just install the game using the third party installer and run the custom launcher (SWEP1RC_Res_Fix_CD.exe). Set the resolution to values which are not natively supported by your display and run the game.
https://www.letsplayforum.de/index.php/Thread … es-und-Patches/
For example I get crashes with the following resolutions: 640x360, 800x450, 1152x648, 1600x900, 1920x1080, 2560x1440, etc. These are resolutions which are not listed on my GPU panel's screen resolution list. It is natural for them not to work natively, but it would be awesome if they worked through dgVoodoo. Playing with dgVoodoo's resolution and scaling settings do not make a difference when I set the resolution to these "natively unsupported values" through the game launcher. I still get the crash at boot.
When I set the resolution to a value supported by my display (such as 640x480, 800x600, 1024x768, 1280x720, 1366x768) through the launcher (SWEP1RC_Res_Fix_CD.exe) and set higher or lower resolution through dgVoodoo's control panel (such as 800x450 or 2560x1440), the game works. The game runs at the resolution set through dgVoodoo control panel in this case.
I attached two log files that I created for Star Wars Racer using the debug build:
1) In the crash case, I set the game's internal resolution to 1920x1080 through the launcher and set dgVoodoo's forced resolution to 1920x1080.
2) In the no crash case, I set the game's internal resolution to 1280x720 through the launcher and set dgVoodoo's forced resolution to 1920x1080.
Line number 85 is interesting in the crash case. It says "SetDisplayMode: Display mode 512x384, 8 bit, 60 Hz is set", eventhough 512x384 was not specified anywhere. (By the way, 512x384 resolution works, when I set the game's internal resolution to 512x384.)