Saturday, January 9, 2010

Eschalon Book I - Intel VGA + the AMD64 hack with lib32 nvidia driver

You can find the details about "Eschalon Book I" in my other post. This short post is about how I could make it work stable on my intel-vga (gma 965) chip. First of all by default it crashes on my 64-bit linux very often. There's a way to prevent this. I had to use the nvidia driver's libGL.so and libGLcore.so. The 32-bit compatibility version in my case, as I'm on a 64-bit system. But this caused trouble with other 32-bit binary native games or those run with wine. So I had to install back the normal mesa libgl library. But there's a way to make work both at the same time!

First I installed the lib32 nvidia libraries. Copied the files of the nvidia version GL from opt/lib32/usr/lib/ to my game's directory creating an ./nvidia directory there. After that I updated back to the normal lib32-libgl of my distro. That way the Eschalon game is still crashing, but other 32-bit games work. But the trick comes just after that: I've created a new shell script that overrides the default library path with the backed up ./nvidia directory, and starts the game with the Nvidia version of libGL. The script looks like this in my Eschalon game directory:

LD_LIBRARY_PATH=./nvidia ./Eschalon\ Book\ I

That's all! :) After that by some heavenly luck, the game still works with the xorg-intel-vga but the nvidia libGL. Strange, isn't it? Nvidia driver version: 190.53. Mesa 7.7. Intel driver version: 2.10. That might change with later versions rendering this useless - right now it works on my machine. If you have a different experience or the same with trying this please leave a comment. Thanks!

The following files are copied into the ./nvidia dir:

libGL.so libGLcore.so.1 libXvMCNVIDIA_dynamic.so.1 libasound.so.2.0.0 libcuda.so.190.53 libnvidia-tls.so.1
libGL.so.1 libGLcore.so.190.53 libasound.so libcuda.so libnvidia-cfg.so.1 libnvidia-tls.so.190.53
libGL.so.190.53 libXvMCNVIDIA.so.190.53 libasound.so.2 libcuda.so.1 libnvidia-cfg.so.190.53

Thursday, January 7, 2010

Eschalon Book I - native client

`This piece of nice classical revival game called Eschalon - well, I've spot it on rpgdot.com long time ago. At first I felt urge to check it, as I'm a big fan of classic RPG genre especially reviving it in modern, better usable, innovated form. Eschalon is turning back to the good old traditions and brings it in a 2D graphical with a unique ruleset and semi-turn based movement/combat. (If you knew how King's Bounty worked, something like HoMM probably - one movement of you means one movement of the other entities - you know how Eschalon works.)

Now the good news (and old news as it is not a recent release) is that Eschalon comes with native Linux client!! Not a common thing, but luckily the engine Basilisk Games used for this game is OpenGL based and Linux compatible as well so it was a good thing they decided to sell and support it. These facts together made it a sure-buy for me - just as I'll buy the Eschalon Book II which is in the works already.

So you have a world to wander around, an interesting new skill/combat system, dialogs and all the classic fun -- and a nicely drawn, classic-resembling style but with appropriate resolution (well 800x600 isnt too high, but I think it's okay) and good looking palette. Well, to tell something negative , the story's starting isn't too innovative tho', you start with wiped out memory...meh, what a surprise. :)

Hardware. My experience with its hardware compatibility regarding Intel was a bit hectic for a while, and it's still so, but improved much with the enhancement of the Linux intel driver. Latest release of the intel vga driver (xf86-video-intel 2.9.99.902-1 on arch, or 2.10 officially :-)) brings just enough performance to play it in low-detail mode which means a bit (~15%) smaller area of view. The officially supported GPUs are okay: my nvidia desktop runs it perfectly fast. I bet AMD/ATi cards does the same.
Well, well, I'm quite happy about this latest intel driver release - I can play this game on my laptop now - very few openGL games manage to be playable. :)

EDIT: I was too quick to draw conclusion - it's playable but not too stable with Intel GPU and linux driver. :/ I can play it for say 10-20 minutes but then a crash might happen. Eh, I will stick to my nvidia desktop.

EDIT2: I'm not sure if this is really correct to do, but hey... seems like if you have an Intel card with 64 bit Linux you have a chance to run the game stable at last! Found this thread on basilisk games forum, so I thought I will give it a chance, installed lib32-nvidia-utils. This one removes the lib32-libgl which is kind of ugly. But that made the game doesnt crash 1 out of 2 tries at startup and inside the game looks stable so far! :D So now my hope is back again to play it on my Intel. Will report again if this ends up a bad lead again. So far it works under Arch Linux 64 bit. (Check screenshot what arch's pacman package manager does when I did that.)

EDIT3: Okay, looks like lib32-nvidia-utils has an ugly impact on running Windows games with bin32-wine and intel vga, which is no surprise. So looks like it's not a good solution - I have to choose, play Eschalon or use wine. Well, seems like I'll just have to reinstall lib32-libgl when I'm done with Eschalon.