Category Archives: Slackware

Play Jedi Outcast + Academy on Linux

jediOld games are just a habit of mine. As one can see on my maintainer list at the wine project, gaming on Linux isn’t such a big problem anymore, even if there are only Windos versions of some of the games available.

But it’s even better that with the closure of Lucas Arts the source code ofStar Wars Jedi Knight: Jedi Academy und Jedi Knight II: Jedi Outcast had been released. Kind of a last farewell from the developers, so to speak.

The source can – thanks to the OpenJK project- also be used on Linux, but just a little disclaimer: Jedi Outcast isn’t as well maintained as Academy. You can only play Singleplayer with it and there even are possible gamebreaking bugs, although I didn’t encounter any of them yet.

I’ve created a SlackBuild for Slackware 14.1 und -current. By reading through this file users from other distributions should be able to see easily what they have to do to build both version. Yes, you have to built the source twice. 😛

The only thing that’s needed is OpenAL and SDL2 to get it running. You also need the original game files, of course – just copy the “base” directory of the specific game to /usr/games/JediAcademy/base or /usr/games/JediOutcast/base.

By default, both games only support 4:3 resolutions.

For modern monitors you have to create autoexec_sp.cfg (or autoexec.cfg for multiplayer) inside of the base directory:

set r_customWidth "1360"
set r_customHeight "768"
set r_mode "-1"
vid_restart
cg_fov "97"
cg_fovaspectadjust 1

May the force be with you!

Enjoy native DirectX9 games on Linux

betrayerThe main operating system I’m using is Slackware – I play my games on this system for years and I always try to avoid booting into the junk Microsoft provides – whenever possible.

Most games are running pretty well with wine now, but almost always a little slower than on Windows. Games that already max-out my hardware become unplayable very fast, even if just a handful of frames get dropped. Those frames decide between heaven and hell.

At the time of this writing, two projects aim at improving the performance of wine – but the code of them is not yet available in the main project.

  • wine-staging includes CSMT and provides support for patended S3TC textures. Without them, a lot of games refuse to work
  • wine-nine is able to send DirectX9 instructions directly to the graphics processor instead of recalculating them into OpenGL calls first, which is very time-intensive. This only works with a recent MESA driver, though.

Both versions bring their own performance kick and stand on their own – but they can be combined:

  1. First I installed libtxc_dxtn – it has to be compiled two times, one time for 64bit and also for 32bit.
  2. Afterwards, I had to build the driver for my Radeon HD 6800 from the recent source code, because the last official release doesn’t support DRI3 and is therefore a bit slower
  3. I set the option “DRI” “3” in /etc/X11/xorg.conf.d/20-radeon.conf
  4. Now I modified a SlackBuild that gets the wine source and combines it with the latest patches from nine and staging.
  5. Last but not least: Setting a symlink to make sure that the right d3dadapter will be loaded:
    ln -s /usr/lib/d3d/d3dadapter9.so.1 /usr/lib64/d3d/d3dadapter9.so.1

    and activating all graphics options in winecfg – done!

native

Now I can play Betrayer with the same performance than on Windows. Go f*ck off, Microsoft.

Update 5.10.2015: I took the SlackBuild from AlienBob and inserted my changes in there, so it’s possible to also build the 64bit version of wine and get all patches downloaded automatically. It also gets rid of the whacky symlink in step 5. 🙂