
eDuke32 r10161 2022-09-14 backported to Windows NT 5 compatibility, GB 27-9-2022. 

Updated 28-09-2022: 
- Will no longer crash when something is unexpected in joystick/gamepad preparation. 
  Writes a warning in the log-file instead. (menus.cpp)
Updated 05-10-2022: 
-Now build to dynamically link to SDL2.dll, instead of a static build.


This is an adaptation of the source code kindly provided here:
https://dukeworld.com/eduke32/synthesis/20220914-10161-1585e73fc/

This is unofficial.
Do not complain to eDuke32 developers about the source-code and binaries provided here.
Also, use at your own risk.

Notes:
- The binaries were compiled and build with GCC 8.4.0 on Windows XP.
The binaries were tested to run on these systems:
Windows XP SP3 x86, Graphics: Radeon HD 7750 PCIe
Windows XP SP3 x86, Graphics: Radeon HD 6310 integrated in E-350
Windows XP SP3 x86, Graphics: NVidia GT 710 PCIe
Windows 7 SP1 x64, Graphics: Radeon HD 7750 PCIe
Windows 7 SP1 x64, Graphics: NVidia Geforce 210 PCIe
Windows 7 SP1 x64, Graphics: Intel HD Graphics 3000 integrated in i3-2310M
Windows 10 x64, Graphics: Intel HD620 integrated
Failure after launcher, which were traced to OpenGL interfacing:
Windows XP SP3 x86, Graphics: Intel HD Graphics 3000 integrated in i3-2310M

- eDuke32 20210927 r9607 is the last one that can build for NT5 as-is.
The builds hereafter include the mimalloc library, this one:
https://github.com/microsoft/mimalloc/issues/138
The adaptation here removed this library.

- eDuke32 20211112 r9778 also uses includes the minicoro library, this one:
https://github.com/edubart/minicoro
AFAIK This puts the procedure that draws the buffer for polymost OpenGL
in a separate thread. It will build for NT5 but will fail to create the
thread at runtime: "Create context error", after the launcher.
The adaptation here uses the old methods.

- Two other small adjustments were NT6 strings functions in loguru.cpp
and a mutex/pthreads library workaround For MinGW32 (mutex-fix folders).

- The original source files were put in a zip file before making changes.
The changes were marked with comment "GB 2022".
I did not dive into the background of every change that I made.
Care was taken to check the diffs for mimalloc/minicoro at github here:
https://github.com/tomkidd/eduke32/
still, it is possible that something is not right.

- The Polymost OpenGL engine can give poor frame-rates. It depends a lot
on the system and the OS. Ion Fury is much more taxing as well.
For older systems, maybe consider this last build with the old style
OpenGL 1.1 Polymost rendering:
https://dukeworld.com/eduke32/synthesis/20180212-6650/
Or use the classic software rendering option.