VOGONS


First post, by WhiteBear

User metadata
Rank Newbie
Rank
Newbie

I tried using dgVoodoo to force the resolution in Battlefield 1942 to stop it from constantly changing the resolution back to 800x600 when I return to the main menu. The game works perfectly fine until I want to end the current game session. The game either stops responding or suddenly crashes to desktop with no error message, and I am forced to restart my PC to be able to launch the game again if it crashes to desktop with no error message. This doesn't happen when I stop using dgVoodoo, so I think there is something wrong with dgVoodoo that causes this issue. I am using dgVoodoo 2.55, which is the latest version. I am not sure if this issue is there in previous releases. I am using Windows 10 64bit Fall Creators Update and the Origin version of the game. I am also using the Widescreen Fix by Team Simple, but I don't believe that the Widescreen Fix is responsible for the crash as I have tried it without dgVoodoo, and the game didn't crash when clicking on end the current game session. It just went back to main menu normally. However the Widescreen Fix doesn't make the game run at 1920x1080 all the time. It only works in-game, unlike dgVoodoo resolution forcing feature, but the Widescreen Fix has an advantage because it automatically changes the FOV according to your resolution, so dgVoodoo and the Widescreen Fix are both important for the game to look nice when using widescreen resolutions such as 1920x1080. I would really like to play Battlefield 1942 again, and I hope a solution to this issue is found.

Reply 2 of 4, by WhiteBear

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:

Did this issue come with older dgVoodoo version too?

So far I never tested this game myself.

I didn't try older versions, but I will do now. Thanks a lot for your response.

Last edited by WhiteBear on 2018-04-01, 11:20. Edited 1 time in total.

Reply 4 of 4, by Dege

User metadata
Rank l33t
Rank
l33t

I had a quick look at this issue and found that BattleField has a buffer overrun problem.
When you end the current session then the game quits and relaunches itself. But because of the overrun bug it crashes instead when quitting. I workarounded this on dgVoodoo side, but still there is a problem.

BF calls something (I suspect GDI's Enum/Change DisplaySettings) that interferes with DX11 because DX11 becomes unusable after the game quits. Even the CPL cannot enumerate the resolutions on the primary monitor. You have to sing out/sign in in Windows to get rid of the problem.
DXGI (part of DX11) throws exceptions when asked for enumerating resolutions because EnumDisplaySettings fails in the deep.

When I rename BF1942.exe to something else to avoid running it in administrator mode then DX11 is not spoiled after quitting. I tried to disable BF1942 in the system default compatibility database to get it running at normal privilege level but to no avail.
Currently the only way I could run it is forcing the game on my secondary monitor (with the patched dgVoodoo version).