Trine 2 on GNU/Linux 64bit

This was done on Kubuntu 13.10, but most of it should be applicable to any GNU/Linux distro.

Trine 2” is a game from FrozenByte. I really loved playing “Trine” and when I saw “Trine 2” in a “Humble Bundle“, I grabbed it whilst the grabbing was good.

The original “Trine” comes in 32bit and 64bit flavours. “Trine 2”, still beta at the time of writing, doesn’t. It’s 32bit and although it does come with some 32bit libraries (in “lib/lib32” under the “trine2_linux” folder) it doesn’t have everything. There’s two ways to fix this:

  1.  Install the missing 32bit packages
  2.  Put the missing 32bit libraries into lib/lib32 (manual static linking, if you want to think of it that way)

I did a combination of both for a variety of reasons, your own situation may vary.

Prior to 13.10, one could just install “ia32-lib-multiarch” to get the 32bit libraries. But as this installed everything in a scatter-gun approach, it was considered a nasty hack and dropped. There are guides out there on how to get the package, but I really don’t recommend it as you end up with older libraries which may lead to more trouble. To start, just run “Trine 2”.

Once past the launch screen it will probably crash. Good. You won’t see any messages, but never fear. Go into the “Trine 2” folder and open (or just cat) “nohup.out” to see what the problem was. You’ll probably get something like this:

error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

That “libGL.so.1” is what we want. Goto https://packages.ubuntu.com/ and in “Search Package Directories” put the name of the missing library, make sure you have your OS version selected and hit search. That should give you the package name. With this you can proceed with option 1:

sudo apt-get install the-package-name:i386

That “:i386” is important, it will force the installation of the 32bit varaint.

OR you can go with option two and simply download the .deb from that site. Then open the .deb and extract the libraries (they may be in a further archive called “datat.tar.gz” which you’ll need to extract). Once done, copy the relevant libraries (and soft-links!) into lib/lib32 of your “Trine 2” folder.

Now try to run “Trine 2” again. It will probably crash, so repeat the above process until success.

Wait…that sucks a bit, doesn’t it? How many times do you have to try and fail? Well, a few. But there’s an easier way. Run this command from within your “Trine 2” folder:

ldd bin/trine2_linux_32bit

That will list all the libraries that are required (ignore “linux_gate” and “ld-linux”; they’re a bit special). We are interested in all the ones that say “Not found” after them. You either have to install the 32bit versions of these (option 1) or place them into /lib/lib32 (option 2). Once all are done, the game should run.

So…how do you know whether or not to use option 1 or 2? Well, depends really. If “Trine 2” is the only game you will play, go with option 2. Saves having to install heaps of 32bit libraries and then finding out that an update beaks “Trine 2”. But if you have a few games and they all complain about the same library being missing, go with option 1. It’ll save space and having to update different libraries if an update brings big improvements or fixes a game bug.

I wonder is a possible workaround would be to somehow run a 32bit virtualised system (say a container) and have that host these games? This is broadly similar to what Windows does for legacy support (“Windows on Windows”) and it does seem to work. Mostly. I’m not going to blame FrozenByte for this, the game is only beta and they have provided 32/64bit in the past. Hopefully the rise of Steam OS (possibly a custom Debian spin) from Valve will give GNU/Linux a greater market segment and from enough momentum to get all these niggles ironed out.

Now, if anyone has managed to get “Intrusion 2” to work on 64bit GNU/Linux, please let me know! I think I have all the libraries, but all I get is a blank screen. I understand that this is  Flash games in some kind of wrapper, so perhaps it’s the cure of Adobe again. Flash must die. Die. Die. Die. Die.

As an side…why the heck does Rekonq think I am an USAian? Regional settings people…they are there for a reason.

1 comment to Trine 2 on GNU/Linux 64bit

  • roadSurfer

    Well, I swear I made no changes (apart for getting hibernate to work with encrypted swap to work) and now “Intrusion 2” works as well.

    Colour me deeply confused.

Leave a Reply