VOGONS


First post, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

The game renders perfectly on Windows 7. On Windows 10 and Windows 11, under Direct3D8 mode (set graphics quality to Best), the game renders like this:
file.php?mode=view&id=157822

Till now, only DxWnd fixes this with its setting: Emulate 16bpp D3D8 backbuffer. Probably you can do something about it too, so that new Intel gamers (with bad D3D9- drivers) can run the game with dgVoodoo2.

Thanks

Attachments

previously known as Discrete_BOB_058

Reply 1 of 2, by Dege

User metadata
Rank l33t
Rank
l33t

TBH, I don't know what to do with this game. It's the 8and16Bit mitigation layer for the DWM (in apphelp.dll) what breaks the game. The game always wants to init DX8 with 16 bit swapchains but the apphelp layer simply modifies that to be 32 (before calling into DX8), so later when creating certain textures, the game creates them with a 32 bit format instead of the expected 16 bit.

Microsoft did a half baked work here: forces the backbuffers to be 32 bit but doesn't care to lie 16 bit when their descriptors are queried... 🤦‍♂️
Either patching the game would help or a new option in dgVoodoo (like in DxWnd as you mentioned) to force the backbuffers back to 16 bit but I don't like the idea, that option'd be meaningless in general, could be named "enable it for Spirit: Stallion...".

Reply 2 of 2, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
Dege wrote on 2023-02-21, 20:06:

TBH, I don't know what to do with this game. It's the 8and16Bit mitigation layer for the DWM (in apphelp.dll) what breaks the game. The game always wants to init DX8 with 16 bit swapchains but the apphelp layer simply modifies that to be 32 (before calling into DX8), so later when creating certain textures, the game creates them with a 32 bit format instead of the expected 16 bit.

Microsoft did a half baked work here: forces the backbuffers to be 32 bit but doesn't care to lie 16 bit when their descriptors are queried... 🤦‍♂️
Either patching the game would help or a new option in dgVoodoo (like in DxWnd as you mentioned) to force the backbuffers back to 16 bit but I don't like the idea, that option'd be meaningless in general, could be named "enable it for Spirit: Stallion...".

There is another newer game (2005) needing it, "Dangerous Waters" according to DxWnd manual. I don't know if there are more games that need it. You call...

previously known as Discrete_BOB_058