Turbo Sliders runs fine on Linux but there might be some problems to get working at full speed. The README-linux.txt in TS documentation offers almost everything that you need to get it working but it's not enough.
This guide provides some more tips about performance issues when using TS on Linux and some other tips. You are required to have some basic linux knowledge to find your way and to have root privileges for installing packages etc.
This page consists of:
How to get TS running
Setting the libraries
Performance issues
TS on 64-bit Linux
How to get Turbo Sliders to work in Linux
After releasing the version 1.0.3 of Turbo Sliders it is even easier to get the game working on Linux and this guide is almost out-dated.
Turbo Sliders is now provided with the current libraries in the Turbo Sliders -directory so there is practically no need to mess with all that "finding the shared libraries" stuff. slider.linux -binary finds all the needed libraries just like that (hopefully).
If you have some problems to get it working, check which libraries are missing with ldd sliders.linux and continue to shared libraries -section. If all is correct you should get a listing of all libraries something like this:
hengari@arrakis ~/games/sliders108rc1 $ ldd sliders.linux
linux-gate.so.1 => (0xb7f42000)
libSDL-1.2.so.0 => ./libSDL-1.2.so.0 (0xb7ec1000)
libSDL_gfx.so.13 => /usr/lib/libSDL_gfx.so.13 (0xb7e8f000)
libSDL_image-1.2.so.0 => ./libSDL_image-1.2.so.0 (0xb7e76000)
libSDL_net-1.2.so.0 => ./libSDL_net-1.2.so.0 (0xb7e72000)
libopenal.so.0 => ./libopenal.so.0 (0xb7deb000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7dd2000)
libm.so.6 => /lib/libm.so.6 (0xb7dad000)
libvorbis.so.0 => ./libvorbis.so.0 (0xb7d85000)
libvorbisfile.so.3 => ./libvorbisfile.so.3 (0xb7d7d000)
libogg.so.0 => ./libogg.so.0 (0xb7d78000)
libc.so.6 => /lib/libc.so.6 (0xb7c42000)
libz.so.1 => /lib/libz.so.1 (0x43f8f000)
libdl.so.2 => /lib/libdl.so.2 (0xb7c3e000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb7b59000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x43fa3000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7b39000)
libpng.so.3 => /usr/lib/libpng.so.3 (0xb7b12000)
/lib/ld-linux.so.2 (0xb7f43000)
libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb7b0f000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7af7000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x43f83000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x43f88000)
TS and shared libraries
I have used all 1.0x -versions of Turbo Sliders Gentoo Linux distributions and it runs fine also on other distributions like Debian and Ubuntu.
As it reads in README-linux.txt you need the following libraries for dynamic linked version:
- SDL, SDL_gfx, SDL_image, SDL_net
And also these for 1.00:
- openal, vorbis, vorbisfile, ogg, png
Package names where you can find those libraries may differ.
These packages can be found in Gentoo.
media-libs/libsdl
media-libs/sdl-gfx
media-libs/sdl-image
media-libs/sdl-net
media-libs/libvorbis
media-libs/libogg
media-libs/openal
media-libs/libpng
and maybe some other packages are needed depending on your system.
You're almost ready to go. See that all libraries are found using command "ldd <binary>"
So with 1.0.3.2 version you get something like this in Debian:
hengari@verteksi:~/sliders10$ ldd sliders.linux.shared
libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x40022000)
libSDL_gfx.so.13 => /usr/lib/libSDL_gfx.so.13 (0x40112000)
libSDL_image-1.2.so.0 => /usr/lib/libSDL_image-1.2.so.0 (0x40124000)
libSDL_net-1.2.so.0 => /usr/lib/libSDL_net-1.2.so.0 (0x4013f000)
libopenal.so.0 => /usr/lib/libopenal.so.0 (0x40143000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x401d5000)
...
On the first try I didn't get that kind of result. It showed that libSDL_gfx.so.13 was not found. The solution was easy. I just made a new symbolic link to needed SDL library in the /usr/lib/ -directory.
In my case it was a link from libSDL_gfx.so.13 pointing to libSDL_gfx.so.0 which was the "real" library.
I also could have made that link directly to libSDL_gfx.so.0.13.0.
I just typed ln -s libSDL_gfx.so.0 libSDL_gfx.so.13 in /usr/lib/. You must be the root -user to do that.
After that my Debian environment showed like this:
hengari@verteksi: /usr/lib $ ls -al /usr/lib/*SDL_gfx* -rw-r--r-- 1 root root 674 Jul 27 2004 /usr/lib/libSDL_gfx.la lrwxrwxrwx 1 root root 19 Sep 24 20:19 /usr/lib/libSDL_gfx.so.0 -> libSDL_gfx.so.0.9.0 -rw-r--r-- 1 root root 61456 Jul 27 2004 /usr/lib/libSDL_gfx.so.0.9.0 lrwxr-xr-x 1 root root 15 Jan 27 19:59 /usr/lib/libSDL_gfx.so.13 -> libSDL_gfx.so.0 lrwxrwxrwx 1 root root 15 Sep 24 20:41 /usr/lib/libSDL_gfx.so.9 -> libSDL_gfx.so.0
What about the performance
The performance comparing to Windows version is a bit slower but with some tweaking and settings the game runs fine. This issue has also been discussed on Turbosliders.com forums.
There are some basic things to do:
- Turbo Sliders runs faster in windowed mode than in full screen.
- sliders.linux is faster than sliders.linux.static
- Don't use the composite effects (transparency things like Compiz) on Linux
- Switch off alpha blending if you have performance problems
- Update your SDL-libraries
- Turbosliders 1.0 is faster in linux than the 0.86b version with same resolution.
In TS 1.0.3.2 (AMD64 3000+, GF4ti2000, 1GB DDR with 1024x768, double-buffering and no alpha-rendering)
- about 60-80% load and fps stay at 50. With many cars the load jumps higher as usual.
In TS 0.86 with 1024x768:
- about 55-75% load and fps stay at 50. With many cars the load jumps higher as usual.
64-bit Linux and Turbo Sliders
Turbo Sliders is a 32-bit game and it has some issues with the needed libraries when run on 64-bit environment. The issues are not big and they are easy to fix. You just need to have some more libraries.
Again I use the ldd -command to check which libraries are missing.
hengari@pikseli ~/sliders $ ldd sliders.linux.shared
linux-gate.so.1 => (0xffffe000)
libSDL-1.2.so.0 => /usr/lib32/libSDL-1.2.so.0 (0x55585000)
libSDL_gfx.so.13 => /gentoo32/usr/lib/libSDL_gfx.so.13 (0x55641000)
libSDL_image-1.2.so.0 => /gentoo32/usr/lib/libSDL_image-1.2.so.0 (0x55651000)
libSDL_net-1.2.so.0 => /gentoo32/usr/lib/libSDL_net-1.2.so.0 (0x5566a000)
libopenal.so.0 => not found
libpthread.so.0 => /lib32/libpthread.so.0 (0x5566f000)
libm.so.6 => /lib32/libm.so.6 (0x556c1000)
libvorbis.so.0 => /gentoo32/usr/lib/libvorbis.so.0 (0x556e4000)
libvorbisfile.so.3 => /gentoo32/usr/lib/libvorbisfile.so.3 (0x5570b000)
libogg.so.0 => /gentoo32/usr/lib/libogg.so.0 (0x55713000)
...
All libraries but the libopenal are found, so I have to use the sliders.linux -binary for now. These paths to libraries are in AMD64 Gentoo environment. Some of libraries are chrooted to 32bit environment (/gentoo32/).
To get TS running in 64-bit Gentoo was a bit more complicated because that chroot. More about running 32bit binaries in 64bit environment and chroot can be found at Gentoo Linux 32-bit Compatibility -guide
Also with chroot you have to set LD_LIBRARY_PATH to point to correct directory. In Gentoo add a file "60sliders" to /etc/env.d/ -directory so that the path is set at boot. The file contains following:
hengari@pikseli ~ $ more /etc/env.d/60sliders # /etc/env.d/60sliders: LD_LIBRARY_PATH="/gentoo32/usr/lib/"
After that run "env-update" and you're ready to go.
If you don't get the libraries to work, there is a package which includes some of the needed 32bit-libraries for Turbo Sliders 1.0.8.
Comments
Post new comment