Since writing this, most newer distros will no longer work with these instructions. However, the process has gotten a lot easier. So, just take the following steps, and if they don't work, then try the complicated directions below.
Section "Extensions"
Option "Composite" "Disable"
EndSection
Old directions for older kernels:
Loki Entertainment Software produced Linux versions of a number of popular computer games. Unfortunately, they shut their doors in January 2002, and haven't patched or updated any of the software since then.
When glibc 2.3 was released, it "broke" many of the Loki games -- they would segfault, if not immediately, fairly quickly into a game. Installing a "fresh" copy of Alpha Centauri causes a crash within two turns, or immediately if I attempt to edit a city. Before closing shop, Loki issued a patch that fixed some of this; unfortunately, the patcher won't work on a modern Linux distro.
Starting with glibc 2.4, LD_ASSUME_KERNEL no longer works. I'm running Ubuntu on a 2.6.15 kernel, and the game wouldn't start unpatched. After patching Alpha Centauri I could play -- but it crashed hard any time I tried to start or join a multiplayer game. Nothing on the web would help me out, so after a few e-mails and experimentations, I found a way to get Alpha Centauri and Alien Crossfire to work in Linux -- multiplayer and all!
These directions should work in any major 2.4.x or 2.6.x distribution, however, I've only tested it in Ubuntu. If you have success in any other distros, please let me know via e-mail and I'll include that information here.
What this is NOT
1. Mount your Alpha Centauri CD-ROM, and execute the setup.sh located in the CD-ROM's root.
Installing as root will allow you to install to /usr/bin/games.
2. The install script will offer to install the Loki Updater. Say NO -- it won't work anyway,
so why waste hard drive space?
3. The install script will offer to install the Loki Uninstaller. I don't know if this works
anymore, but who would ever uninstall Alpha Centauri?
4. The install script will ask how much of the game you want installed. Choosing all options
will allow the game to be played without inserting the CD into the drive. Don't bother allowing
it to create Desktop or Menu icons -- chances are they won't work anyway.
5. Sit back and wait for the install to complete. Congratulations! You are ready to play,
assuming you are using a version of Linux that hasn't been updated since 2001!
Installing the Latest Patches
To patch Alpha Centauri and Alien Crossfire requires several steps. You need to obtain the
latest patch from Loki's site, and run it with
the --keep option. It will crash, but the --keep option prevents the uncompressed
files from being deleted. Now you have to traverse the directory tree it produces
and replace the loki_patch in smac-6.0a-alpha/bin/Linux/x86/ with one obtained
here. Now run the update.sh in
the smac-6.0a-alpha directory.
OR
Skip all that and install the patch I've already fixed
here. Run update.sh (as root, assuming you installed the game in /usr)
and it should update the game just fine.
Fixing Libraries
This step may or may not be optional for you. I had to do this in order to get
multiplayer to work, but I've been told by others that Alpha Centauri wouldn't work
for them at all until they did this.
Download and install this set of library
files into /usr/local/games/smac/Loki_Compat (or your SMAC install directory).
Unfortunately, the smacpack binary used to select between Alpha Centauri and Alien
Crossfire uses static binaries, so you'll have to use two different commands to
launch the two games. I suggest creating scripts, aliases, or menu items to avoid
typing these each time:
To start Alpha Centauri:
To start Alien Crossfire:
File Ownership Issues
The Loki installer has a tendancy to create configuration files owned by root in the
users directory when executed through sudo. If you used sudo, you'll need to run
"chown -R (username) ~/.loki" in order to correct the file ownership.
Additional Resources
Old Loki Games Under New(ish) Linux
And by last resort, feel free to ask me for help, although I'm
unlikely to be able to do much -- I'm not a Linux guru, and if I can't recreate your problem on
my end, chances are I'll just note it here and wait until someone finds a solution.
Installing Planetary Pack
LD_PRELOAD=/usr/local/games/smac/Loki_Compat/libstdc++-3-libc6.2-2-2.10.0.so /usr/local/games/smac/smac.dynamic
LD_PRELOAD=/usr/local/games/smac/Loki_Compat/libstdc++-3-libc6.2-2-2.10.0.so /usr/local/games/smac/smacx.dynamic
Linux Gamer's FAQ
HOWTO Running Old Loki Games