Hi,
any change to support WinNT4?
Im asking because Windows NT4, is the last retro gaming unconquered land.. and its supporting only Direct3D 3 officially and Direct3D 5 somehow unofficially. So make Direct3D to OpenGL wrapper to work would be big thing.
As i checked DXGL description is OpenGL 2+, on NT there is only the last OpenGL Nvidia driver which claims OpenGL 2 support here:
https://www.nvidia.com/en-us/drivers/details/13/
For all other drivers i would probably need to downgrade DXGL to OpenGL 1.x
Glide to OpenGL wrappers are running fine on NT4, same as OpenGL, there details from my testing:
https://docs.google.com/spreadsheets/d/ ... sp=sharing
It seems that no other project has enough knowledge to make it happen, i tried to search Direct3D to Opengl wrappers for NT4, but i failed.
Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
Re: Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
So far I have not attempted to test Windows NT 4, but I have managed to get it down to Windows 2000 so far with the VS2005 and VS2008 builds.
The DXGL Config app will launch on Windows 98, but as of the 0.5.x series the DXGL wrapper crashes upon initialization.
It seems that Visual Studio 2005 might not be designed to target Windows NT 4.0, so this might be a bit hard to support at this time.
Please double-check that the NVIDIA driver shown there supports non-power-of-2 textures (note the GeForce FX series does not support them properly), rectangle textures, and framebuffer objects. Rectangle textures and framebuffer objects didn't become core until OpenGL 3.x and DXGL will check for their support at startup.
For NVIDIA graphics cards, GeForce 6 or newer series is required; GeForce FX series will be unplayable due to the lack of non-power-of-2 texture support in hardware.
The DXGL Config app will launch on Windows 98, but as of the 0.5.x series the DXGL wrapper crashes upon initialization.
It seems that Visual Studio 2005 might not be designed to target Windows NT 4.0, so this might be a bit hard to support at this time.
Please double-check that the NVIDIA driver shown there supports non-power-of-2 textures (note the GeForce FX series does not support them properly), rectangle textures, and framebuffer objects. Rectangle textures and framebuffer objects didn't become core until OpenGL 3.x and DXGL will check for their support at startup.
For NVIDIA graphics cards, GeForce 6 or newer series is required; GeForce FX series will be unplayable due to the lack of non-power-of-2 texture support in hardware.
Re: Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
Thanks for reply.
Im just occasional coder so it say you much details, but Visual studio version should not be issue, through project settings, downgrading .Net version i managed to run some of my programs written in VS2010 or VS 2012 on Windows 98 fine. VS 2002 is the first with .Net support.
Im not sure you using .Net functions or just "clean" C /C++.
WIn98 are limited to .Net 2.0; WinNT to .Net 1.1 .. I also managed to to convince VC5 and VC 6 working fine on WIndows 10 for Quake 1 and Hexen 2 source code compiling. Someone managed to get running .Net 2.0 + .Net 3.5 - on Windows 95 (so 98 included):
https://github.com/itsmattkc/dotnet9x add adding warkarounds for not SSE cpsu. There is nice developer video from that fight:
https://www.youtube.com/watch?v=CTUMNtK ... nel=MattKC
But not yet on NT4, there not real demand of it.
I expect that real problems would be some missing Kernel calls for which we would need to find some workarounds, because they would not popup during building, but after real test on NT4.
If i can help with some testing let me know.
So far except real HW, you can test NT4 fine with 86Box https://86box.net/ - videocard option are limited to 3Dfx cards - to support good OpenGL and Glide - i can confirm than Banshee is working fine.. supported Matrox card has not really accelerad OpenGL support and G200 to G450 support is missing. Nvidia Riva 128 is still in the works, there are claims that after Riva 128, would be implemented it would not be hard to get up to Geforce 3.
Other option for Windows 95/98 testing is Virtualbox / Vmware gpu acceleration SoftGPu project, it has not NT support so far.
https://github.com/JHRobotics/softgpu
I spend quite a lot of time on NT4 research and its work in progress, you can check it here on Vogons:
https://www.vogons.org/viewtopic.php?t=103915
So far i did not even tested DXGL on NT4, because system requirement where not fulfilled.. so it looked like real long shot.
Update:
I have tried newest version legacy installer, but im stuck on - XP SP3 + OS install check.
msvc9 version - stuck on win2000 + test
msvc8 version - its failing with this call - The procedure entry point CreateToolHelp32Snapshot could not be located in the dynamic link library kernel32.dll - its generated by dxglcfg.exe
I also wonder do you use DirectX files to actually make DXGL working? Because as i wrote NT has only DirectX3 support and unofficial Direct 5 is more shim than working thing. DX6 pathing is even worse - its just change of files version number.. Another supposed DX6 patch for NT, is just DirectX media part, just of 1 of like 8 main DX components.
If you use them NT4 port would need to copy some modern DIrectX files somewhere..
Im just occasional coder so it say you much details, but Visual studio version should not be issue, through project settings, downgrading .Net version i managed to run some of my programs written in VS2010 or VS 2012 on Windows 98 fine. VS 2002 is the first with .Net support.
Im not sure you using .Net functions or just "clean" C /C++.
WIn98 are limited to .Net 2.0; WinNT to .Net 1.1 .. I also managed to to convince VC5 and VC 6 working fine on WIndows 10 for Quake 1 and Hexen 2 source code compiling. Someone managed to get running .Net 2.0 + .Net 3.5 - on Windows 95 (so 98 included):
https://github.com/itsmattkc/dotnet9x add adding warkarounds for not SSE cpsu. There is nice developer video from that fight:
https://www.youtube.com/watch?v=CTUMNtK ... nel=MattKC
But not yet on NT4, there not real demand of it.
I expect that real problems would be some missing Kernel calls for which we would need to find some workarounds, because they would not popup during building, but after real test on NT4.
If i can help with some testing let me know.
So far except real HW, you can test NT4 fine with 86Box https://86box.net/ - videocard option are limited to 3Dfx cards - to support good OpenGL and Glide - i can confirm than Banshee is working fine.. supported Matrox card has not really accelerad OpenGL support and G200 to G450 support is missing. Nvidia Riva 128 is still in the works, there are claims that after Riva 128, would be implemented it would not be hard to get up to Geforce 3.
Other option for Windows 95/98 testing is Virtualbox / Vmware gpu acceleration SoftGPu project, it has not NT support so far.
https://github.com/JHRobotics/softgpu
I spend quite a lot of time on NT4 research and its work in progress, you can check it here on Vogons:
https://www.vogons.org/viewtopic.php?t=103915
So far i did not even tested DXGL on NT4, because system requirement where not fulfilled.. so it looked like real long shot.
Update:
I have tried newest version legacy installer, but im stuck on - XP SP3 + OS install check.
msvc9 version - stuck on win2000 + test
msvc8 version - its failing with this call - The procedure entry point CreateToolHelp32Snapshot could not be located in the dynamic link library kernel32.dll - its generated by dxglcfg.exe
I also wonder do you use DirectX files to actually make DXGL working? Because as i wrote NT has only DirectX3 support and unofficial Direct 5 is more shim than working thing. DX6 pathing is even worse - its just change of files version number.. Another supposed DX6 patch for NT, is just DirectX media part, just of 1 of like 8 main DX components.
If you use them NT4 port would need to copy some modern DIrectX files somewhere..
Last edited by ruthan on May 3rd, 2025, 10:52 pm, edited 1 time in total.
Re: Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
There is no usage of .NET at this point. Also, DXGL only depends on OpenGL.
If I ever decide to support NT4 I will not depend on any OS-level hacks.
If I ever decide to support NT4 I will not depend on any OS-level hacks.
Re: Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
Its great that its pure C++ not, .NET it would make things easier.
OpenGL support is fine on NT, its first Microsoft to support it, only difference is that beside standard ICD OpenGL driver model, its supporting MCD driver model which used for first OpenGL card, where part of functions could be not HW accelerated. It was used for CAD / 3D modeling, where speed does not matter much, its too slow for games (when maybe not know with todays fast CPUs).
It you are interested in MCD, there is nice article and test early OpenGL cards:
https://retro.swarm.cz/nt4-opengl-mini- ... ge-ii-pro/
CreateToolHelp32Snapshot error:
You dont need some OS level hacks, like new Kernels etc, this function is not simply supported by NT kernel, i looked at its this function description:
https://learn.microsoft.com/en-us/windo ... 32snapshot , i dunno if you are using it for something critical, if not you are use something like if (OS==NT) skip this call, but it its needed, mesa9x contributor already found the way how make it working on the NT:
https://github.com/JHRobotics/mesa9x/issues/2
It should be easy to fix, if you do it let me know i can test new build, i expect that there would be more similar problems.
OpenGL support is fine on NT, its first Microsoft to support it, only difference is that beside standard ICD OpenGL driver model, its supporting MCD driver model which used for first OpenGL card, where part of functions could be not HW accelerated. It was used for CAD / 3D modeling, where speed does not matter much, its too slow for games (when maybe not know with todays fast CPUs).
It you are interested in MCD, there is nice article and test early OpenGL cards:
https://retro.swarm.cz/nt4-opengl-mini- ... ge-ii-pro/
CreateToolHelp32Snapshot error:
You dont need some OS level hacks, like new Kernels etc, this function is not simply supported by NT kernel, i looked at its this function description:
https://learn.microsoft.com/en-us/windo ... 32snapshot , i dunno if you are using it for something critical, if not you are use something like if (OS==NT) skip this call, but it its needed, mesa9x contributor already found the way how make it working on the NT:
https://github.com/JHRobotics/mesa9x/issues/2
It should be easy to fix, if you do it let me know i can test new build, i expect that there would be more similar problems.
Re: Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
I do not plan on supporting any graphics cards below OpenGL 2.0 because the architecture of those legacy cards is so much different than modern GPUs. Presumably MCD drivers will be OpenGL 1.x and thus unsupported. There is a runtime check for the OpenGL version when DXGL's ddraw.dll starts up.
As for the CreateToolHelp32Snapshot error, this is in fact currently a critical function, as many OpenGL implementations depend on DirectDraw to initialize OpenGL, and this function is used to check if the calling function is from opengl32.dll.
At this time, Windows NT 4.0 support is still not a priority, but I might consider reopening the 0.5.x branch for a fix.
As for the CreateToolHelp32Snapshot error, this is in fact currently a critical function, as many OpenGL implementations depend on DirectDraw to initialize OpenGL, and this function is used to check if the calling function is from opengl32.dll.
At this time, Windows NT 4.0 support is still not a priority, but I might consider reopening the 0.5.x branch for a fix.
Re: Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
Every improvement count, if you will make it working with OpenGL 2.0, maybe other developer could help with OpenGL 2 to 1.x downgrading.
Re: Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
OpenGL 2.0 to 1.x downgrade would require a complete rewrite; DXGL is written with a strict dependency on GLSL and multiple render targets.
Looking at what it takes, I found I could use an alternate code path involving GetModuleHandle and GetModuleInformation which is unsupported on Win9x but supported on NT4.
Looking at what it takes, I found I could use an alternate code path involving GetModuleHandle and GetModuleInformation which is unsupported on Win9x but supported on NT4.
Re: Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
I have opened Issue #52 to track this:
https://github.com/dxgldotorg/dxgl/issues/52
These fixes will be applied to the 0.5.x branch to allow for a quick release based on functional code, but will trickle down to the master and 0.6-dev branches to incorporate these fixes into future planned versions.
I have an old AMD Athlon XP computer that I put a GeForce 6200 graphics card into and it boots off of SD cards to quickly swap between different operating systems.
https://github.com/dxgldotorg/dxgl/issues/52
These fixes will be applied to the 0.5.x branch to allow for a quick release based on functional code, but will trickle down to the master and 0.6-dev branches to incorporate these fixes into future planned versions.
I have an old AMD Athlon XP computer that I put a GeForce 6200 graphics card into and it boots off of SD cards to quickly swap between different operating systems.
Re: Any chance to support Windows NT4 for retro gaming, its limited to DirectX3/5, OpenGL is working fine?
Great thanks a lot, could you confirm that OpenGL 2.0, is working with Geforce 6200 and NT4? Because one thing could be drivers claims and second reality, i had not time to test it yet.
BTW i found the great tool to diagnose OpenGL on NT4 and other more modern operation systems Glview - https://www.realtech-vr.com/home/?page_id=142 , for NT4 works at least Glview 2.18.
Here are details about NT if you are interested: https://www.vogons.org/viewtopic.php?p=1344545#p1344545
BTW i found the great tool to diagnose OpenGL on NT4 and other more modern operation systems Glview - https://www.realtech-vr.com/home/?page_id=142 , for NT4 works at least Glview 2.18.
Here are details about NT if you are interested: https://www.vogons.org/viewtopic.php?p=1344545#p1344545