Descent 3 not working
Descent 3 does not work in SoftGPU at all :-(
It does not matter, which configuration i use, neither 3Dfx Glide, nor OpenGL, nor Direct3D works. The installation works fine and the video after the setup works too, but the screen goes black when i start the game and the VM freezes - requiring a reset of some sort.
Versions i tried:
- SoftGPU 2025.50
- SoftGPU 2025.51
- SoftGPU 2025.53
I tried with GPUv10, but with GPUv9 it does not work either.
Game:
- Descent 3 Venture Pack (Fullversion, German)
- Release version or Patch 1.4 EU
Where it works:
- Real Hardware (P3 - Voodoo 3 or P4 - Geforce 4 TI 4200)
- PCem AMD K6-II
- 86Box Pentium 200 MMX
- Windows XP VM
The Demo Version of Descent 3 works with 3Dfx Glide and Direct3D. This must be an issue with the video playback right at the start (Dolby intro).
Try running the game with parameter "-nointro" and/or "-launched" to skip launcher.
Perhaps, speaking of intro video the mileage varies a lot depending the Hypervisor used.
Say in Tomb Raider 1, the intro videos work perfectly in Virtualbox but not in VMware, even if the latter works way better in game, with less audio lag and smoother experience in general.
Try running the game with parameter "-nointro" and/or "-launched" to skip launcher.
I already tried that. It does not work. It seems that Descent 3 does not like virtualization at all. I will try that in virtualbox and report back.
Descent 3 (GOG version) works for me with the '-nointro' parameter using SoftGPU's opengl32.dll (from the extras directory) on Windows XP (QEMU, WHPX)
Descent 3 (GOG version) works for me with the '-nointro' parameter using SoftGPU's opengl32.dll (from the extras directory) on Windows XP (QEMU, WHPX)
QEMU-3Dfx is a totally different beast than VMWare or Virtualbox!
I tried that a few months ago and i successfully compiled qemu-3dfx and even wrote a extensive tutorial for that - but it was never working. I never got the guest wrappers working, even though everything was compiled successfully. I also tried SoftGPU (a very old one) but it never passes the git hash "validation" for qemu-3dfx after the installation. The entire process was a nightmare, therefore i dropped it. Maybe i will re-visit later - with the help of AI, i may can get it working now.
Btw. i tried "Descent 3" in a fresh installed virtualbox machine and it suffers from the same issue: Black screen not starting at all.
Because it may be a video only problem, i installed all patches from the windows 98 autopatcher, to see if it is working or not. Makes no difference.
Running "Descent 3" in PCem or 86Box works totally fine, even without any patches for windows 98 - so it is not a issue of windows 98 itself. It also works in a XP VM, but in there the window is tiny and not fullscreen at all.
You dont need qemu-3dfx in order to use Softgpu's opengl32.dll. It will work in standard Qemu.
You said: "I also tried SoftGPU (a very old one) but it never passes the git hash "validation" for qemu-3dfx after the installation."
You were using wrong opengl32.dll. Softgpu's opengl32.dll size is a 40-80 MB. The one from qemu-3dfx is much smaller, below 1 MB. Softgpu's package includes both Softgpu's opengl32.dll and opengl32.dll for qemu-3dfx
Qemu-3dfx opengl32.dll is "protected". If you have have compiled qemu-3dfx from git commit aed6bf9 then you also need opengl32.dll that is compiled under that git hash. I've managed to compile qemu-3dfx under Windows and Linux and it works.
You dont need qemu-3dfx in order to use Softgpu's opengl32.dll. It will work in standard Qemu.
You said: "I also tried SoftGPU (a very old one) but it never passes the git hash "validation" for qemu-3dfx after the installation."
You were using wrong opengl32.dll. Softgpu's opengl32.dll size is a 40-80 MB. The one from qemu-3dfx is much smaller, below 1 MB. Softgpu's package includes both Softgpu's opengl32.dll and opengl32.dll for qemu-3dfx
Qemu-3dfx opengl32.dll is "protected". If you have have compiled qemu-3dfx from git commit aed6bf9 then you also need opengl32.dll that is compiled under that git hash. I've managed to compile qemu-3dfx under Windows and Linux and it works.
So to understand you, lets assume i have compiled qemu-3dfx. Now i am booting up that qemu build, creating the VM, install win98, install audio drivers and then install SoftGPU. Directly after reboot, i replace the "opengl32.dll" from the WINDOWS\SYSTEM directory with the one from qemu-3dfx and then run the validation tool and then everything will work?
Must those "opengl32.dll" be compiled separately or is it built when the guest wrappers are built automatically?
Do not modify or replace opengl32.dll in the C:\Windows\System directory. Before doing anything with opengl32.dll:
For Windows 98/ME:
- Copy FXMEMMAP.VXD to C:\WINDOWS\SYSTEM.
After that:
- Copy OPENGL32.DLL to the game installation folder (e.g., C:\Games\Quake3).
- Test it with OpenGL games, such as the Quake 3 demo.
For Qemu-3dfx you must have opengl32.dll that matches your qemu-3dfx build. If I send you opengl32.dll that I've compiled, it probably wont work for you.
And yes, you need to compile fxemmap.vxd and opengl32.dll.
In the QEMU-3dfx source, locate the wrappers folder. Compile the wrappers using MinGW32 (not MinGW64). QEMU-3dfx itself can be compiled with MinGW64, but the wrappers must use MinGW32.
For guidance on compiling QEMU-3dfx and its wrappers on Windows 10 & 11, refer to this file:
https://raw.githubusercontent.com/kharovtobi/qemu-3dfx-arch/refs/heads/master/.github/workflows/build.yaml