The old setup bootstrap used to implement a fairly old Visual C Runtime. This allowed it to run without any dependencies on the platforms that we were targeting. The new bootstrap is compiled using Visual C++ 2017. However, I’ve completely unlinked the requirement for the CRT/MSVCRT from the executable! It’s built using native code, much like a kernel would be built. This way, it will start up on just about any Windows platform, without any problems. The code had to be carefully written, to avoid any use of the common runtime, and the default libraries. In some cases, I had to provide my own implementations of functions like memset(). Now, I can ensure the latest version of the Microsoft Visual C Runtime (MSVCRT) is installed before my main setup program has been started.
I also recently finished a Self Extractor for the game download. It’s basically a .ZIP file appended to a custom extractor; i.e. a redistributable executable and the compressed archive of data in one file. The game used to be distributed as a .ZIP file only, but not everyone knew that you had to extract it, and then run the ‘Setup.exe’ found within the extracted folder. Much better now!