-
Notifications
You must be signed in to change notification settings - Fork 252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Runtime Issue]: Support for Windows XP #631
Comments
Hello. This task may be difficult to achieve. Currently we fully support only Windows 64bit target. 32bit target still buildable (as last I checked some time ago), but not tested. Main difficulties here is using correct toolchain. You definitely need MSVC 2019 as project requires C++17 capable compiler. Other things is remember to install MS Visual C++ redistributable runtime package. |
Hi, WinXP support is indeed not currently planned, as we now mostly target current-day (64-bit) Operating Systems where the Descent 3 experience needs improvement. If you wish to run the game on legacy hardware, your best bet would be to start from the 1.5 tagged version, before the rendering changes that could break compatibility with older graphics drivers that may not support OpenGL 2+. |
Thanks for the responses! Are there any build instructions for 32-bit? I was able to build and compile following the build instructions, but that's obviously for the 64-bit version. I think most graphics cards in XP (Nvidia / AMD) have OpenGL 2+ support. I have a GTX 970 on my XP x64 machine, and it works fine with the last driver release Nvidia put out for XP. |
To build for 32bit on Windows, you need to build from the x86 native command prompt instead of the x64 one |
I tried the following in x86 Native Tools Command Prompt for VS 2022:
None of the above commands worked. I should be able to build the 32-bit version from a 64-bit machine / version of VS 2022, right? So, thinking that configuration already existed for the 64-bit build I compiled earlier, I recloned the repo into a new folder, and then tried this again from x86 Native Tools Command Prompt for VS 2022:
But, I got the following error:
Any ideas? |
Yes. Our CMakePresets.json sets the Lines 19 to 23 in 652e31f
If you want to build for x86, try replacing |
Thanks! I got further, but something is failing:
|
Hmmm... interesting... I can't see anything that should behave differently between x64 and x86 in the code. |
Sorry for the long delay. I was finally able to understand and fix the compiler error in a local x86 build. |
Yes, it built with your branch for x86, but this change still has to be made manually: It seems to work as well, but I'm still not getting it to work on XP, and I'm not sure why. Hex editing the 60 00 00 00 entry to support older versions gets me past the is not a valid win32 application message:
But, now I get the error of:
Could this be because of something not within the Visual C++ 2015-2019 package for XP that is in 2022 for newer versions of Windows? |
Correct, it only fixes the compile error. I don't plan to reintroduce official x86 support, see earlier comment for reason: #631 (comment)
It probably is. You can try to build the project with VS2019. Or even VS2017, because that one has the last official compiler toolset v141_xp targeting Windows XP. No guaranties that this compiles at all, though. |
So, it looks like I won't be able to use Ninja to attempt this? Trying to follow the directions here: https://stackoverflow.com/questions/72377387/how-to-target-windows-xp-with-msvc2017-and-cmake
Any ideas on how to fix the above? |
Ok, I got vcpkg working with Visual Studio 2017 by editing the CMakeLists.txt file and adding:
Before find package after cloning vcpkg from github and installing what it needed. I created the solution using: cmake CMakeLists.txt -G "Visual Studio 15 2017" -T v141_xp -Wno-dev I had to make one code change for Visual Studio to compile the solution, but after that, it produced these files: Descent3_compiled_using_xp_switch.zip But, it still won't run in XP. Same problem as before:
@pzychotic Any idea? I feel like I'm close... Event viewer shows:
|
Ok, I got it to work! It runs fine on my XP x64 machine (32-bit version Descent3 exe). I tested it on 10/28/24 with Windows XP SP3 on an i7 920 rig with a Geforce 8800 GT video card in it, and it works fine. I imagine the attached binary will work on Windows XP SP3 (x86) and Windows XP SP2 (x64) systems that have an Nvidia or ATI/AMD video card installed with the latest drivers available for XP. I know it does not work on my netbook running XP because Intel's video drivers are lacking features needed by the game. Attached is a version that can be used in XP. Rename the original Descent3.exe binary to Descent3_old.exe and extract everything from this zip file into your Descent 3 directory. Descent 3 Latest for Windows XP.zip I fixed the manifest error by telling the linker not to generate one: If this helps anyone, you can download the source directory I was working on with the generated solution file here: |
Glad you got it working! It's amazing how many things I take for granted nowadays when working with the latest tools. Like vcpkg being installed by VS2022, that you have to setup manually with older versions. Is there anything we can still help you with, or can this issue be closed? |
Yep, closing. Feel free to point anyone to that zip if they need a 32-bit build or one that works on XP. Thank you so much for your help on this. |
Build Version
1.5 latest release
Operating System Environment
CPU Environment
Game Modes Affected
Game Environment
No response
Description
I tried to get the Descent3.exe binary to work in Windows XP by following the instructions in a reddit comment from here (https://www.reddit.com/r/windowsxp/comments/1dckc7b/is_not_a_valid_win32_application/):
Specifically:
That gets me past the "is not a valid Win32 application" error, but then I get :
Yet, I've installed Visual C++ 2015-2019 (last supported XP version).
Could you please support XP? The original Descent 3.exe build does...
Regression Status
No response
Steps to Reproduce
Try to run on XP 32-bit and XP x64 (64-bit). Doesn't work. Original binary works in both versions.
The text was updated successfully, but these errors were encountered: