TerryCavanagh / VVVVVV

The source code to VVVVVV! http://thelettervsixtim.es/
Other
6.9k stars 553 forks source link

Support for Windows XP 32-bit apparently dropped #1145

Closed Daaaav closed 5 months ago

Daaaav commented 5 months ago

This can probably be quickly closed as "not worth the effort to support OS versions this dinosaur", but since the Windows version is apparently still compiled with VS2010, I don't immediately see what made it incompatible...

Source: a comment on https://terrycavanagh.itch.io/vvvvvv

itch.io message

(It's kind of an entitled remark, for an OS we're probably one of the last apps to even still have supported in the first place, and I don't think anyone would blame us for not supporting it anymore except for this person 😛)

flibitijibibo commented 5 months ago

It might be SDL that stopped working, I dunno... I know we recently patched SDL3 with fixes for XP, but I don't have a setup to test with. They're welcome to build from source to see what's wrong, I'd be okay with patching stuff in since there's hardly any OS stuff in the game anyway...

Daaaav commented 5 months ago

So I tested it on Windows XP just now:

Can't find GetFileInformationByHandleEx in SHELL32.dll

It's a PhysFS issue. It seems like if the compiler supports Vista+, a Vista+ function will be used and thus the compiled program will not run on XP?

EDIT: This seems relevant: https://github.com/icculus/physfs/pull/7

flibitijibibo commented 5 months ago

Ah, yeah you're right - if the relevant upstream commit doesn't fix this we should revive that ticket. (At the same time they should probably backport the fix to a stable release if it does work...)

Daaaav commented 5 months ago

Seems like what recently got merged was a fix for a similar Windows 7/8 split, so XP is still not supported unless we explicitly set _WIN32_WINNT to signal XP as a minimum target version.

Daaaav commented 5 months ago

Just checked the 2.4.1 Steam build on XP and that also doesn't work.

I'm pretty sure it doesn't require any code patches - we just need to define _WIN32_WINNT to 0x0501 for PhysFS, to make it not use any Vista+ only APIs.

flibitijibibo commented 5 months ago

Need to rebuild the nonSteam packages anyhow, so I'll do that today. (Will skip Steam since they don't even support <10 anymore...)

Daaaav commented 5 months ago

Refrigerator approved!

2.4.1 on XP