Planescape:Torment on Linux

THIS POST IS NOW OUTDATED, THE GAME FROM GOG ALSO RUNS ON LINUX AND MAC

Planescape:Torment. Considered THE role-playing game by many. There’s no homepage anymore, so here’s the wikipedia page. Well worth playing if you like reading stories, it’s like an interactive book, one of the best of it’s kind. Not so much if you’re into bashing high-poly skulls. But this isn’t a review.

The goal was to play it on Linux as it was intended to be played, full screen, without it crashing on alt+tab and such, while doing as little setup as possible. It works in Wine with some tweaks, but keep an eye on GemRB, the open-source implementation of Bioware’s Infinity Engine. Given the changing nature of Wine and Linux, this is WorksForMe quality, your millage might vary.

INSTALLING THE GAME

What I got it running with: Debian, bash shell, Wine version 1.3.27, winetricks, Planescape:Torment bought and downloaded from GOG.com, recommended as it’s DRM free and comes with some goodies like music/wallpapers/manual. Running in Gnome 2 with Compiz aka Desktop Effects.

Short version: in Wine set direct draw renderer to opengl, offscreen rendering mode to backbuffer and turn on software mirroring in game. Install DDraw fix to get rid of the remaining artefacts. Use WeiDU for linux to install mods.

First thing I did, and this is optional, was create a new Wine “profile” for the game so that I can mock around with the different options without affecting my running instalation. A “profile”, or “prefix”, is basically a directory where Wine stores it’s settings, you can have several of those around. This is done by setting the WINEPREFIX variable. I set mine to /data/pst/, so open a terminal and run

$ export WINEPREFIX="/data/pst/"

You will need to do this every time before running the game. The rest of this document assumes everything related to wine is run within this prefix. Next, run winecfg so it installs the initial environment. I didn’t need to set anything further using winecfg, Windows version was set to XP, vertex shader to hardware, pixel shader allowed and no virtual desktop. These were the default settings.

Now install PS:T. For gog.com version it’s

$ wine setup_planescape_torment.exe

and everything went fine, I installed in “c:\planescape\“, not “Program Files”, don’t like spaces in file names and it might save some trouble down the road. Path on disk was /data/pst/drive_c/planescape.

Next, run winetricks, select default wineprefix -> change settings -> tick the boxes that say “ddr=opengl” and “orm=backbuffer” -> OK -> exit winetricks.

Start the game

$ cd /data/pst/drive_c/planescape/
$ wine Torment.exe

start a new life, stats don’t matter for now, go to the Options screen (press ESC or lower right menu), go to Video Options and tick “Software Mirroring”.

That’s it. At this point the game is running fine for me, some minor graphical artefacts left behind by the mouse cursor, but no big deal as they disappear after a few seconds anyway. I played for a very short while, got out of the Mortuary and rested, no problem.

That was easy, PS:T is running and it’s fairly fast install process, supposing everything went well. But with so many fine mods for it out there it would be a shame not to take advantage of the work done for free by people who love this game. So here comes the hard part.

INSTALLING MODS

There’s this blog, mirrored on GOG, that gives a list of the best mods for the game and how to install them. Problem is, that’s for Windows. If you can install them on Windows and copy the game over to Linux, that would be a lot easier. Or, try installing the mods in Wine, that would also be easier. I couldn’t get WidescreenMod to start in Wine though, so here’s how to install them using the Linux version of WeiDU. It might be a good idea at this point to make a backup of PS:T game folder, although you can unpatch the game by running the installer again.

WeiDU is “a dialogue compiler, string patcher, script and text file extender for Infinity Engine games”. As far as the rest of this document is concerned, it’s a mod installer.

WeiDU

Download the Linux binary. Unzip ‘tolower’, ‘WeInstall’ and ‘WeiDU’ files somewhere in your $PATH, I used /usr/local/games. ‘tolower’ is used to rename every mod’s files to lowercase before running it and ‘WeInstall’ is used to, yeap, install the mods. First run tolower in game’s directory.

~$ cd $WINEPREFIX/drive_c/planescape
/data/pst/drive_c/planescape$ tolower
Do you want to lowercase everything?
  (run if you extracted some mods since the last time you ran this utility)
[Y]es or [N]o
Y
Do you want to generate linux.ini from baldur.ini?
(needed once per installation)
[Y]es or [N]o
Y
Fatal error: exception Not_found
:/data/pst/drive_c/planescape$

Answering “Y” to first question renames all the files in that directory to lowercase, so “Torment.exe” will become “torment.exe”, “CHITIN.KEY” will become “chitin.key”, etc.

The second option creates a linux.ini file that will be used by WeInstaller so it knows where the game files are. This only needs to be done once, before any mods are installed. The problem is it might get it wrong. For example my linux.ini generated by the program looks like this:

/data/pst/drive_c/planescape$ cat linux.ini
CD1:=/home/user/.wine/dosdevices/../drive_c/planescape/
CD1:=/home/user/.wine/dosdevices/../drive_c/planescape/DATA/
CD1:=/home/user/.wine/dosdevices/../drive_c/planescape/DATA/
CD1:=/home/user/.wine/dosdevices/../drive_c/planescape/DATA/
CD1:=/home/user/.wine/dosdevices/../drive_c/planescape/DATA/
CD1:=/home/user/.wine/dosdevices/../drive_c/planescape/DATA/

That’s wrong. That directory doesn’t exist on my system and it does that because I didn’t use the default Wine prefix, which is ‘/home/user/.wine/’, so edit linux.ini into something like

CD1:=/data/pst/drive_c/planescape/
CD1:=/data/pst/drive_c/planescape/data/
CD1:=/data/pst/drive_c/planescape/data/
CD1:=/data/pst/drive_c/planescape/data/
CD1:=/data/pst/drive_c/planescape/data/
CD1:=/data/pst/drive_c/planescape/data/

By the way, WeiDU doesn’t care about the fact that it’s all CD1.

That’s it. WeiDU is now all set up and ready to install the mods. The way it usually works is unpack the mod, run tolower to change case on all files, run “WeInstall modscript.tp2” to install. But the UI mods are different.

The Bigg’s Widescreen mod

In short it allows you to change the game’s resolution. Get it from the Gibberlings. It probably doesn’t matter if you get the Windows or OS/X version, I got the Windows one. Here’s a list of common resolutions by aspect ratio to help you decide. Personally I wouldn’t go above 1280, things are too small, but it’s your monitor. It will change X’s resolution while playing, but it will go back to the original one when you exit the game.

4:3 (aka sqaure) 16:9 16:10
640 x 480 640 x 360
800 x 600 854 x 480
1024 x 768 1024 x 576
1152 x 864
1280 x 960 1280 x 720  1280 x 800
1400 x 1050 1366 x 768  1440 x 900
1600 x 1200 1600 x 900  1680 x 1050
1920 x 1080  1920 x 1200
2048 x 1536 2048 x 1152  2560 x 1600

 

Unrar the mod to a separate folder, run ‘tolower’ on it, answering Y to first question and N to second, then copy the ‘widescreen’ directory to the game’s directory and run ‘WeInstall widescreen’. Supposing it’s the Windows version:

~/pst/widescreen$ unrar x widescreen-v3.05.exe
~/pst/widescreen$ tolower
~/pst/widescreen$ cp -R widescreen /data/pst/drive_c/planescape/
~/pst/widescreen$ cd /data/pst/drive_c/planescape/
/data/pst/drive_c/planescape$ WeInstall widescreen

Hopefully it went well, start the game again (wine torment.exe) and check that it still works fine. If the resolution isn’t to your liking you can run the installer again. All kinds of screens are out of place and there’s a black bar in the lower area, so it’s time to install the next mod.

GhostDog’s PS:T UI

Quoting from the mod’s webpage: “What this mod does is center all of these elements and enhance the UI with original game art to fit nicely with any resolution. Additionally, bigger fonts are available for those with relatively small monitors.”

Might notice that the mod has a single quote in it’s name. It uses that sign inside the files too. Linux doesn’t like that, so it’ll have to go. Download the mod, unpack to a separate folder. Run these commands:

~/pst/ui$ for file in `find . -type d -name "*'*"` ; do mv -v $file ${file/\'/} ; done
~/pst/ui$ for file in `find . -type f -name "*'*"` ; do mv -v $file ${file/\'/} ; done
~/pst/ui$ find . -name "*'*"
~/pst/ui$ tolower
Do you want to lowercase everything?
  (run if you extracted some mods since the last time you ran this utility)
[Y]es or [N]o
y
Do you want to generate linux.ini from baldur.ini?
(needed once per installation)
[Y]es or [N]o
n
~/pst/ui$ find . -type f -exec sed -i "s/GhostDog's-PST-UI/ghostdogs-pst-ui/g" {} \;
~/pst/ui$ cp -R * /data/pst/drive_c/planescape/
~/pst/ui$ cd /data/pst/drive_c/planescape/
/data/pst/drive_c/planescape$ WeInstall setup-ghostdogs-pst-ui.tp2</pre>

What they do:

line 1 - remove quote from dir’s name

line 2 - remove quote from file names

line 3 - check if there are any more files containing quotes, this shouldn’t return anything

line 4 - change all files to lowercase. ‘Y’ to first question, ‘N’ to second

line 13 - replace “GhostDog’s-PST-UI” with “ghostdogs-pst-ui” in all files. You don’t want to replace only the quote, there might be accidents

the other lines - copy everything to game’s directory and run the installer.

Check ThunderPeel2001’s blog for details. I chose 80% fonts. Run the game again, check if everything is in order, rejoice.

This was the hard part.

Other mods

The rest of the mods follow the same simple procedure, download the mod, extract to some directory, change file names to lowercase using ‘tolower’ or whatever suits your fancy, copy to gamedir, run ‘WeInstall setup-pst-mod.tp2’ inside that directory. Hopefully the idea is clear by now. I’ll just provide links below, refer to GOG or the blog linked above for install info.

Qwinn’s PS:T Tweak Pack

PS:T Unfinished Business

There is however one more mod. So far the game was fine except for some minor artefacts that weren’t really a problem anyway. Installing the DirectDraw fix solved that part too. It’s already lowercase, so just unrar to gamedir and WeInstall it. Say ‘Y’ to the first question to install the fix, ‘N’ to the second.

I’ve been playing around a bit, got out of the Mortuary, resting works, don’t know about the rest of it yet. It changes the resolution of X Window to that of the game while playing, so alt+tab or changing desktop still has that resolution, but when you exit the game it reverts to default. Still, I can live with having my browser or chat in 1280 instead of 1920 if I just want to quickly check something out. However, if the game crashes, and it does crash sometimes when loading an area, just like it does on Windows, the resolution doesn’t change. Scrolling on the edge of the screen works, that was my biggest gripe with other setups.