softgpu icon indicating copy to clipboard operation
softgpu copied to clipboard

Glide games not working

Open skipster1337 opened this issue 2 years ago • 2 comments

Most games that require 3dfx support don't work. I tried:

Need for Speed II SE: Works fine in software mode but the 3dfx accelerated mode will throw an opengl32.dll error: 2023-04-30 21_06_39-Windows 98 SE SoftGPU  Running  - Oracle VM VirtualBox

Need for Speed III: Appears to work either in software or Direct3D mode with decent performance (I can't really tell whether it's real direct3d or not) but it doesn't detect any 3dfx devices and as such doesn't run in Glide mode: 2023-04-30 21_09_10-Windows 98 SE SoftGPU  Running  - Oracle VM VirtualBox

GLQuake: Fails to launch with a CreateContext error. 2023-04-30 21_10_47-Windows 98 SE SoftGPU  Running  - Oracle VM VirtualBox

Quake II: Works in software and "default OpenGL" but the 3dfx OpenGL option will again throw a CreateContext error. 2023-04-30 21_12_17-Windows 98 SE SoftGPU  Running  - Oracle VM VirtualBox

I'm running Windows 98 SE on Virtualbox 7.0.6 with the VMSVGA and 3D acceleration enabled, 128 MB vram is allocated. The host GPU is Intel HD 4400 integrated graphics but it shows up as hardware accelerated in the OpenGL checker: 2023-04-30 21_15_02-Windows 98 SE SoftGPU  Running  - Oracle VM VirtualBox
Also Direct3D works fine and it passes all dxdiag tests. Only glide seems to be broken.

I also tried switching to VBoxSVGA to no avail. What could be the issue?

skipster1337 avatar Apr 30 '23 18:04 skipster1337

Hello @skipster1337,

NFS2SE: main problem is in OpenGlide - technically this is because in these games is rendering performed in multiple threads (OK, "multiple" - first thread set it and second draw) and OpenGlide only translating it to one OpenGL context. And this isn't work because in OpenGL only one context can be attached to one thread, or you need use more contexts and share them. I last release (v0.4.2023.9) I implement context sharing so NFS2SE is runnable. Only runnable, because there are some problems with alpha channel, so menu is bit broken, and some textures has bad transparency.

You can see it on screenshots:

VirtualBox_Windows 98 ICD_02_05_2023_22_50_45

VirtualBox_Windows 98 ICD_02_05_2023_23_00_59

NFS3: I'll try to find out why the Glide is not detected :-)

MiniGL: Games with MiniGL cannot work for simple reason - MiniGL usually replacing opengl32.dll with wrapper to glide2x.dll (or glide3x.dll) but in SoftGPU is glide2x.dll wrapper to OpenGL.dll - so we have loop between opengl32.dll and glide2x.dll and program crash on stack overflow or refuses to load one of these libraries. This can be solved relative easily (by modification of OpenGlide to loading opengl.dll dynamically at runtime), but are there some reasons of use MiniGL driver if native OpenGL driver is present? For example, GLQuake works perfectly if you delete opengl32.dll from game folder (default C:\QUAKE).

On the other side, it there will be demand for MiniGL, I'll try to make it works.

JHRobotics avatar May 05 '23 15:05 JHRobotics

Cool, I will play around with more Glide / OpenGL games and show my results. I will try to get Quake and Quake 2 running first.

skipster1337 avatar May 05 '23 15:05 skipster1337