Monday, May 4, 2009

HowTo: Enemy Territory on FreeBSD

Update 26/03/2012:
With the introduction of Fedora 10 Linux compatibility environment, step 3 isn't required.
Update 10/05/2012:
Ever since EvenBalance stopped supporting Enemy Territory step 5 should be ignored. Please refer to HowTo: Get etkey and Punbuster files on Enemy Territory. If time permits I'll create a new post on how to install Enemy Territory for FreeBSD 9, until then ignore steps 3 and 5.

Wolfenstein: Enemy Territory is a free multiplayer FPS that takes place in the World World II pitting two teams (Allies and Axis) against each other for victory.

The game was originally going to be a retail expansion pack for Return To Castle Wolfenstein but the project was cancelled, Activision however decided to release it during 2003 for free.

In this post I'll detail the steps required to install and update Enemy Territory, the ET Pro mod, PunkBuster and XQF on FreeBSD.

1) Install and update Enemy Territory

Become the superuser:
% su
And install the required port:
# cd /usr/ports/games/linux-enemyterritory
# make install clean
This will pull Enemy Territory's installer from the web. If any port options pop up stick with the defaults and choose OK to continue.

If you don't have the Linux Compatibility Environment proceed to step 2, otherwise jump to step 3.

2) Enable the Linux Compatibility Environment

Enemy Territory needs both FreeBSD's Linux kernel module and near-minimal installation of a Linux distribution. By default, FreeBSD 7.x uses Fedora Core Linux 4.

The linux-enemyterritory port pulls in linux_base-fc4 so we just need to load the Linux kernel module at boot time. To do so run:
# echo 'linux_enable="YES"' >> /etc/rc.conf
3) Install Linux X.Org libraries

Wolfentein: Enemy Territory requires Linux X.Org libraries to load properly. To install them run the following command:
# cd /usr/ports/x11/linux-xorg-libs
# make install clean
4) Install the ET Pro mod

Next let's install Enemy Territory's best mod: ET Pro.
# cd /usr/ports/games/linux-enemyterritory-etpro
# make install clean
Now ET Pro will show under the Mods options in the games' main menu.

5) Update PunkBuster

Now start the game, create a player profile and quit. By doing so a .etwolf directory will be created in your home directory which includes a folder containing PunkBuster.

Point to scroll down and follow the Linux download to download PunkBuster update application.

Change directory to where you've downloaded the and:
# su
# chmod +x
# exit
% cp ~/.etwolf/pb
% ./
PunkBuster will ask to fetch updates and prompt for a License Agreement. Afterwards point to "Add a Game option", choose Enemy Territory and its installation path.

On the main PunkBuster window click on Enemy Territory to select it and press "Check for Updates". Quit PunkBuster after updating it.

6) Install XQF

One can use the in game browser to search for server. However I recommend installing and using the XQF Game Server Browser as it a lot more flexible and complete:
# cd /usr/ports/games/xqf
# make install clean
XQF should identify the installed Enemy Territory so select the game and press "Update" to have XQF pull an updated server list.

I tend to play on by server ;)

7) Fix sound issues

ET uses Linux's OSS sound infrastructure so you might come across issues. Here's how to enable sound on Enemy Territory under FreeBSD 7.x:
% su
# sysctl hw.snd.compat_linux_mmap=1
# echo "hw.snd.compat_linux_mmap=1" >> /etc/sysctl.conf
# exit
With the above commands sound will be enabled immediately and also at boot time.

8) Setup widescreen resolution

If you have a widescreen monitor follow the instructions on my previous blog post HowTo: Widescreen resolutions on Enemy Territory.

And we're done!

See you on the battlefield I'll be the one with the tangram"FreeBSD~ name :D

No comments: