libsdl-org / sdl12-compat

An SDL-1.2 compatibility layer that uses SDL 2.0 behind the scenes.
Other
193 stars 40 forks source link

Test the Linux Game Publishing demos... #268

Closed icculus closed 1 year ago

icculus commented 1 year ago

LGP was pretty good about shipping free demos for their games, and the Internet Archive has them all (demos.linuxgamepublishing.com redirects there).

https://archive.org/download/lgp-demos

We should test all these and see what the status is; at least Majesty has a C++ ABI issue that makes Mesa not work where forcing the software renderer fixes it.

(Don't forget to add them to the Compatibility Matrix!)

icculus commented 1 year ago

Worth noting that most (all?) of these games ship with their own copy of libSDL-1.2.so.0 and an rpath to find it, and this seems to override LD_LIBRARY_PATH, so you'll have to overwrite the included SDL with sdl12-compat.

icculus commented 1 year ago

I can't get ballistics to load OpenGL, even with real SDL 1.2. Might be a 32-bit thing. I don't know. This sounds like the sort of thing @sulix could figure out more quickly than me.

icculus commented 1 year ago

Postal 2 has the C++/Mesa conflict nonsense. I'll try it on Nvidia drivers.

sulix commented 1 year ago

I can't get ballistics to load OpenGL, even with real SDL 1.2. Might be a 32-bit thing. I don't know. This sounds like the sort of thing @sulix could figure out more quickly than me.

I has a super-quick look at this, and couldn't get OpenGL to load either. The game seems to be doing a lot of SDL_GL_LoadLibrary() (with a bunch of custom logic for finding the path to a libGL.so implementation — you can override some of it with the -g option, but that always fails for me), and SDL_GL_GetProcAddress before a window is created. In theory, this shouldn't be a problem, but something's clearly up. The game uses a lot of C++/STL, as well, which doesn't bode well. Though, given even the non-C++-y nVidia drivers are failing, though, it might be something more sinister.

icculus commented 1 year ago

you can override some of it with the -g option, but that always fails for me

strace informs me that the -g option wants the directory containing libGL.so, not the library filename, but I still couldn't coerce it once I figured that out.

sezero commented 1 year ago

I removed or renamed all of *.so files under lib1 and lib2 except for ssl libs, it then loaded opengl for me on my centos 6.10 i686-linux.

icculus commented 1 year ago

Can we mark that one as working, then...?

icculus commented 1 year ago

Honestly, Candy Cruncher and Majesty are the only two I've tried that didn't have Mesa-vs-C++ issues (even using OpenGL through SDL2's render API), and a lot of these are a struggle to start at all. Maybe this is a waste of time and we should just close this until someone reports a specific incompatibility.

sezero commented 1 year ago

Maybe this is a waste of time and we should just close this until someone reports a specific incompatibility.

I second that.

GranMinigun commented 7 months ago

For future reference: setting environment variable force_direct_glx_context=true (for Mesa, see src/util/driconf.h) lets Ballistics demo to get to main menu (but it then crashes while loading a race).