DescentDevelopers / Descent3

Descent 3 by Outrage Entertainment
GNU General Public License v3.0
2.74k stars 231 forks source link

[Runtime Issue]: OpenGL ChangeDisplaySettings error when launching #418

Closed hurricanejuiceboxing closed 1 week ago

hurricanejuiceboxing commented 1 month ago

Build Version

4795388500777b78b5053e163d0869bf8644faae

Operating System Environment

CPU Environment

Game Modes Affected

Game Environment

No response

Description

After following usage instructions in the readme, D3-open-source\Descent3.exe fails to launch with error: Descent 3 Error Error: OGL: ChangeDisplaySettings failed. Make sure your desktop is set to 16bit mode!

Regression Status

I don't know

Steps to Reproduce

Expected behavior: game launches as normal. Steps to reproduce: follow "usage" section here and then try to launch the game. Frequency: happens every time.

Lgt2x commented 1 month ago

The game needs to be run in Windows 95 compatibility mode

JeodC commented 1 month ago

The game needs to be run in Windows 95 compatibility mode

Setting the default BPP to 32 will fix this fyi.

hurricanejuiceboxing commented 1 month ago

The game needs to be run in Windows 95 compatibility mode

This works for the 32 bit build, but is not an option for the 64 bit build. Launching the 32 bit exe, setting the graphics bit setting to 32, then replacing the 32 bit build with the 64 bit build also results in the same error message, so it seems like the default BPP being 16 means only the 32 bit build works for now?

JeodC commented 1 month ago

The game needs to be run in Windows 95 compatibility mode

This works for the 32 bit build, but is not an option for the 64 bit build. Launching the 32 bit exe, setting the graphics bit setting to 32, then replacing the 32 bit build with the 64 bit build also results in the same error message, so it seems like the default BPP being 16 means only the 32 bit build works for now?

That's correct. The 64bit build only has compatibility modes going back to Vista. To resolve this, the default BPP in the renderer code needs to be 32, not 16. There is practically zero use case for 16 BPP in modern times.

pzychotic commented 2 weeks ago

The game needs to be run in Windows 95 compatibility mode

Setting the default BPP to 32 will fix this fyi.

Would you mind creating a PR with these changes? I would love to see this fixed this way.

JeodC commented 2 weeks ago

The game needs to be run in Windows 95 compatibility mode

Setting the default BPP to 32 will fix this fyi.

Would you mind creating a PR with these changes? I would love to see this fixed this way.

Sorry, won't be doing that. Not only might this be the "wrong" way to go about it (tbh it's best to just remove 16 bit depth entirely imo), I am not ready to contribute back to the parent repository yet. I gave the hints above to let the maintainers know how I ended up resolving it--just a lead.

JeodC commented 2 weeks ago

Also, the incoming SDL2 windows stuff from @Lgt2x as a continuation of icculus' recent fbo pr may trounce it.

JeodC commented 1 week ago

This can be closed I assume.

hurricanejuiceboxing commented 1 week ago

Yepyep, 64 bit build works now with that change!