libsdl-org/sdl12-compat

Test the Linux Game Publishing demos...

icculus opened this issue · 10 comments

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!)

  • ballistics
  • candycruncher
  • coldwar
  • creatures
  • gorky17
  • hdb
  • jets
  • knights
  • majesty
  • mindrover
  • ningpo
  • postal2
  • shadowgrounds
  • soulride
  • survivor
  • x2

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.

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.

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

sulix commented

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.

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.

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.

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

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.

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

I second that.