Descent3 icon indicating copy to clipboard operation
Descent3 copied to clipboard

[Runtime Issue]: Game Won't Switch to Direct3D or Glide

Open OpenRift412 opened this issue 10 months ago • 13 comments

Build Version

9753f8367fa64b7d02bdf910bddceb51c42fd1e7

Operating System Environment

  • [ ] Microsoft Windows (32-bit)
  • [X] Microsoft Windows (64-bit)
  • [ ] Mac OS X
  • [ ] Linux (specify distribution and version below)

CPU Environment

  • [ ] x86 (32-bit Intel/AMD)
  • [X] x86_64 (64-bit Intel/AMD)
  • [ ] ARM (32-bit)
  • [ ] ARM64 (64-bit; sometimes called AArch64)
  • [ ] Other (RISC V, PPC...)

Game Modes Affected

  • [X] Single player
  • [X] Anarchy
  • [X] Hyper-Anarchy
  • [X] Robo-Anarchy
  • [X] Team Anarchy
  • [X] Capture the Flag
  • [X] Bounty
  • [X] Entropy
  • [X] Hoard
  • [X] Monsterball
  • [X] Cooperative

Game Environment

The issue is present while the game is launched.

Description

So when testing again with both dgVoodoo2's Glide and Direct3D wrappers, it seems that the game isn't really acknowledging them at all. I'm not much of a programmer, so I looked at the new EXE in a hex editor and compared it to the original 1.4 version, finding that there wasn't any mention of the string "glide" in the new EXE. I don't know if this was a change found in the original unfinished version of 1.5, but searching "glide" in the repo seems to still show results, but I'm not seeing any comments or anything regarding disabling the API. Was this stripped out?

Regardless, I don't know why it doesn't acknowledge the D3D wrapper tho, since "d3d" has the same number of string occurrences in the new EXE as it did in 1.4.

Regression Status

I don't know.

Steps to Reproduce

  1. Place dgVoodoo files as necessary in your Descent 3 install folder (glide2x.dll, ddraw.dll, d3dimm.dll, etc.)
  2. Launch the game. Normally it should display either a dgVoodoo or 3DFX watermark for D3D and Glide respectively, but that isn't what's happening.

OpenRift412 avatar Apr 23 '24 22:04 OpenRift412

What game assets are you using?

JeodC avatar Apr 23 '24 22:04 JeodC

What game assets are you using?

The GOG release.

OpenRift412 avatar Apr 23 '24 23:04 OpenRift412

I'm confused here. You mention ddraw.dll and d3dimm.dll, but those files are not in the release. https://steamdb.info/depot/273591/

Where do you normally see these watermarks?

JeodC avatar Apr 23 '24 23:04 JeodC

I'm confused here. You mention ddraw.dll and d3dimm.dll, but those files are not in the release. https://steamdb.info/depot/273591/

Where do you normally see these watermarks?

I guess I misunderstood what you meant by "game assets."

The files I mentioned aren't included in Steam or GOG release, dgVoodoo2 is a third party wrapper that makes running old games that use these APIs more compatible on modern systems. I believe nGlide is what's bundled with Descent 3 by default. You may try that as well and see if it detects that, but I'm doubtful.

When using dgVoodoo, the watermark should appear in the bottom-right.

OpenRift412 avatar Apr 24 '24 00:04 OpenRift412

Well, it seems to be working somewhat:

image

I don't see the watermark, but the game detects the emulated card and the effects chosen seem to work.

JeodC avatar Apr 24 '24 01:04 JeodC

Well, it seems to be working somewhat:

image

I don't see the watermark, but the game detects the emulated card and the effects chosen seem to work.

I think the launcher detects them, but not the actual main.exe itself. Does main.exe have any role in the detection process in the launcher?

OpenRift412 avatar Apr 24 '24 01:04 OpenRift412

The launcher only sets up values. A better question is, does this tool work on other versions of the game. Does it work with the gog executable?

JeodC avatar Apr 24 '24 01:04 JeodC

The launcher only sets up values. A better question is, does this tool work on other versions of the game. Does it work with the gog executable?

Yes, it does. It works with vanilla 1.4 as intended.

OpenRift412 avatar Apr 24 '24 01:04 OpenRift412

The gog release of 1.4 is a 64bit executable. Our 1.5 artifacts are 32bit. Make sure you use the x86 DLL files.

JeodC avatar Apr 24 '24 01:04 JeodC

The gog release of 1.4 is a 64bit executable. Our 1.5 artifacts are 32bit. Make sure you use the x86 DLL files.

Are you looking at the Windows release or the Mac release? I think there was an updated version released for Mac at some point in the past decade or so that runs on modernish (pre-M) versions of MacOS or something, and that's probably the one that's 64-bit. The GOG version for Windows is 32-bit. I just ran it with the x86 dlls for Glide and D3D and I can see the watermark.

OpenRift412 avatar Apr 24 '24 01:04 OpenRift412

For some reason I thought they were all brought up to 64bit and windows was lacking other features. The confusion was likely brought on by the launcher being updated.

I'm afraid I can't help you much here. There are many things changes between 1.4 and 1.5 before source was released. You can try building the d3-historical branch to confirm it wasn't something we did.

JeodC avatar Apr 24 '24 01:04 JeodC

Only OpenGL code is built in the source as released, the Direct3D code is included but not compiled (could be reactivated, but not with the hardware T&L code), and Glide is nowhere to be found. (Kevin probably has it though, if he ends up adding historical source).

InsanityBringer avatar Apr 24 '24 01:04 InsanityBringer

Only OpenGL code is built in the source as released, the Direct3D code is included but not compiled (could be reactivated, but not with the hardware T&L code), and Glide is nowhere to be found. (Kevin probably has it though, if he ends up adding historical source).

If reimplimenting D3D is doable and if it's possible to ask Kevin about it the Glide code, I'd encourage it.

OpenRift412 avatar Apr 24 '24 01:04 OpenRift412

I don't see that being done any time soon. D3D was probably disabled to help in developing cross-platform. A proper legacy roadmap will likely be visited in the future.

JeodC avatar Apr 24 '24 14:04 JeodC