-
Notifications
You must be signed in to change notification settings - Fork 25
Which Windows release should you take (Recent vs Legacy)
This pages describes which one of the released binary executables should you choose and why.
If you're on Windows 10 or newer AND you have a 64 bit CPU architecture → take Recent.
If you're on Windows 8 or older OR you have a 32 bit CPU architecture → take Legacy.
That means if you're on 64 bit Windows 7, you have to use the 32 bit version, the 64 bit one probably won't work, try on your own responsibility.
The software world is moving forward, and so must Doom Runner.
Over 20 years has passed already, since the first 64 bit CPU was released to the wide public (2003). Shortly after that, all operating systems implemented support for them, and nowdays you can hardly find an application that doesn't have a 64 bit version. Windows 11 (released 2021) no longer has a version for 32 bit CPUs, Ubuntu dropped support of 32 bit CPUs in 2019, and the Msys2 environment (which i use for building Doom Runner on Windows) removed its 32 bit version in November 2024.
Despite that there is still a considerable portion of people (~6% according to my download statistics) who still use 32 bit OS and refuse to upgrade. I am still able to produce 32 bit executables using a historical (unmaintained and out of date) version of Msys2 and Qt5 package. But eventually even this will have to go.
It is important to note that 32 bit applications can still run on 64 bit CPU and OS due to backward compatibility layer, but there is no benefit in doing so, aside from maybe saving few bytes of memory.
All in all, prefer 64 bit Doom Runner whenever possible, and use 32 bit Doom Runner only for 32 bit Windows. But please, please, i urge you, upgrade to a 64 bit CPU and OS. There are many options, even if you cannot afford a brand new computer.
When a C or C++ application is made, it requires so called "runtime", which is essentially a set of libraries (files with .dll suffix) that provide some basic common functionality for those applications.
There are two variants of the C runtime on Microsoft Windows.
- Microsoft Visual C++ Runtime (MSVCRT) is available by default on all Windows versions, but due to backwards compatibility issues is stuck in the past and is missing some features.
- Universal C Runtime (UCRT) is a newer version used by Microsoft Visual Studio by default. It is included as a part of Windows 10 or later and automatically updated using Windows Update. For older Windows versions, it has to be provided with the application or manually installed into the system.
Nowdays the UCRT should be preferred whenever possible. The only reason for using MSVCRT is the convenience of users using older version of Windows, who then don't have to install anything to make the application work.
Qt is a C++ framework that among other things simplifies writing graphical applications (such as Doom Runner). In 2020 its creators published a new major version (6.x.x) that contained many breaking changed (changes that are not backward compatible) that required applications to be adapted. One such breaking change was the end of support for Windows older than 10. This means that to build the application for Windows 8, 7 or Vista, Qt 5 has to be used. Windows XP is not supported even by Qt 5, just quit using it already.
Now all of the above theoretically leads to 8 possible combinations (not counting the possibility of statically linked and dynamically linked builds), leading to 8 possible different builds. Luckily not all of them make sense, for example UCRT requires Windows 10+ and Qt 6 also requires Windows 10+, therefore it is pointless to produce MSVCRT Qt6 or UCRT Qt5 builds. Also a 32 bit Windows 10 is such a rarity that it can be safely disregarded. This leaves us with 3 combinations that have a valid use case:
- 32-bit MSVCRT Qt5 ← for 32 bit Windows Vista, 7 or 8
- 64-bit MSVCRT Qt5 ← for 64 bit Windows Vista, 7 or 8
- 64-bit UCRT Qt6 ← for 64 bit Windows 10 or later
However to save myself some work and make the choice a little less complicated, i decided to disregard the middle option and only provide 2 builds that i named Modern and Legacy, with the meaning as follows:
- Legacy (32-bit MSVCRT Qt5) ← for 32 or 64 bit Windows Vista, 7 or 8
- Modern (64-bit UCRT Qt6) ← for 64 bit Windows 10 or later
People with 64 bit Windows Vista, 7 or 8 have two options. Either they can just use Legacy, because 32 bit applications still work on 64 bit system, or they can attempt to manually install UCRT to their system to allow the application to start, but there is no guarantee that the Qt 6 will work correctly.