narzoul / DDrawCompat

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

Half-Life WON Issues #193

Open OpenRift412 opened 1 year ago

OpenRift412 commented 1 year ago

So from all my tedious research I've realized that DDrawCompat is the ONLY DirectDraw wrapper that can render the menu of Half-Life WON correctly with scaling, as the menu will always run in DirectDraw regardless of what in-game renderer you've selected. Because of this, this creates an issue where there is a bit of jankiness when pausing/unpausing the game. Using DDrawCompat with dgvoodoo's Glide or Direct3D wrapper causes the game to freeze at the "Loading..." dialogue. Using it with native OpenGL, the game loads up fine when unpausing, but pausing causes the frame to freeze and requires me to alt-tab to get the menu to show.

OpenRift412 commented 1 year ago

This is being tested with WON version 1.0.1.6, by the way.

OpenRift412 commented 1 year ago

Same issue when using Direct3D or Glide mode in Interstate '76: DDraw menu, Hardware-accelerated in-game.

narzoul commented 1 year ago

Using DDrawCompat with dgvoodoo's Glide or Direct3D wrapper

This is not supported as per the README:

For various reasons, the below cases are not supported:

  • (...)
  • Running DDrawCompat in combination with other wrappers/hooks (...)

Using it with native OpenGL

I don't really know how OpenGL presentation works, but I'm surprised it works at all. This is not really supported either, although I haven't explicitly put this in the README (yet). You can only use DDrawCompat with DirectX 1-7 renderers, everything else is out of scope, and this is not likely to change in the near future.

Therefore, I can only support the cases where both the menu and the chosen renderer are based on DX 1-7. I will check these later.

OpenRift412 commented 1 year ago

Half-Life does have a Direct3D mode, which probably runs in one of the DX versions 1-7. Unless D3D doesn't count?

narzoul commented 1 year ago

Direct3D rendering was removed by a patch a long time ago. Anyway, I tested an old enough version that still has it. The slowness when switching to the main menu is caused by a display refresh rate change. Try using DisplayRefreshRate=desktop or some other fixed refresh rate setting in DDrawCompat.ini.

I also have an issue with the main menu changing to windowed mode when returning to it from the game. This is probably some issue with fullscreen detection when using scaled display modes in DDrawCompat. I'll look into it when I have some time.

narzoul commented 2 months ago

The main menu should no longer change to windowed mode in v0.5.2. Are there any issues on your end still?

OpenRift412 commented 2 months ago

The main menu should no longer change to windowed mode in v0.5.2. Are there any issues on your end still?

Yeah, it's still the same issue as before.