narzoul / DDrawCompat

DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11
BSD Zero Clause License
880 stars 67 forks source link

Half-Life (WON): Issues switching between menus and game #279

Open OpenRift412 opened 5 months ago

OpenRift412 commented 5 months ago

As you may know, the CD/WON version of Half-Life uses DDraw/GDI for rendering the menus, while the game is rendered with whatever renderer is selected (I tested both software and D3D renderers). The problem is that even with software rendering selected, starting a game will switch from the menus to the game fine, but once I pause the game, it starts to have issues. In software mode it seems to give a black screen while in Direct3D mode, it will show the menu fine again, but once you resume the game again, it will keep displaying the menu background while the game audio can be heard.

I tested this in 1.0.1.6. Is there anything that can be done about this?

narzoul commented 5 months ago

Looks like everyone who runs this game has a different variation of issues with the menu/game transitions (or no issues at all in my case). Have you tried the preliminary patch from this other similar issue? https://github.com/narzoul/DDrawCompat/issues/270

OpenRift412 commented 5 months ago

Looks like everyone who runs this game has a different variation of issues with the menu/game transitions (or no issues at all in my case). Have you tried the preliminary patch from this other similar issue? #270

I did try the patched DDraw.dll, still the same results. It does seem to transition and work just fine when the game runs in windowed mode, though.

I also tested it with the Uplink demo like you did, and going from the game to the menu just freeze-frames the game, not showing the menu at all.

BEENNath58 commented 5 months ago

Not this game again...

On DxWnd tests, bypassing the SetCooperativeLevel call fixed the black screen issue in all of the 3 different modes

OpenRift412 commented 5 months ago

Not this game again...

On DxWnd tests, bypassing the SetCooperativeLevel call fixed the black screen issue in all of the 3 different modes

Are we talking about using DxWnd in conjunction with DDrawCompat? Or DxWnd on its own? Because using DxWnd on its own has its own set of issues in the menus.

BEENNath58 commented 5 months ago

Not this game again... On DxWnd tests, bypassing the SetCooperativeLevel call fixed the black screen issue in all of the 3 different modes

Are we talking about using DxWnd in conjunction with DDrawCompat? Or DxWnd on its own? Because using DxWnd on its own has its own set of issues in the menus.

Both in conjunction and alone.

I am aware there are problems with in in DxWnd windowed modes, as it uses multiple windows over each other in menus which seem unhandleable there. But the fullscreen context works fine since everything takes place in a fixed 640x480 area.

The message was primarily for Narzoul, if he can emulate the same with DDC and get some better results. It obtained better results in other games such as POD, Tonic Trouble, Rayman 2 so it was worth telling.

narzoul commented 2 months ago

Are there still issues with v0.5.2? I rewrote the primary surface handling quite a bit, so I'm hoping it fixed all of them. At least, it works fine on my end.

OpenRift412 commented 2 months ago

Are there still issues with v0.5.2? I rewrote the primary surface handling quite a bit, so I'm hoping it fixed all of them. At least, it works fine on my end.

Just tried it, still the same.