# Wolfenstein Enemy Territory

This [archive](https://et.thegux.fr/archives/et_full_linux.tar.gz) contains all files needed to run **Wolfenstein ET 2.60b** on Linux. It includes two folder :

One to launch the main game :
* The [official game](https://cdn.splashdamage.com/downloads/games/wet/et260b.x86_full.zip)
* [et-sdl-sound](base/et-sdl-sound) (enabling sound - fetch from https://web.archive.org/web/20160804014221/http://nullkey.kapsi.fi/et-sdl-sound/)

One to launch a Jaymod server: 
* [Jaymod 2.2.0](https://jaymod.clanfu.org/)
* [Omnibot 0.87](https://app.assembla.com/spaces/omnibot/wiki) (recover from the [SVN repository](https://app.assembla.com/spaces/omnibot/subversion/source/HEAD/Enemy-Territory) on the #3594 commit - **NOT A RELEASE**)

## Requirements

Wolfenstein ET is built on a 32 bits arch. So, 32 bits librairies must exist to run the game.

```bash
# add the i386 architecture
sudo dpkg --add-architecture i386

# do update to fetch i386 librairies
sudo apt-get update

# install the 32 bits compatible librairies
sudo apt-get install ia32-libs (mint)
sudo apt-get install lib32z1 (ubuntu)

# after the installation the following lib must be present
sudo apt-get install libsdl1.2debian:i386
```


## Installation

**NOTE** : The installation has been tested on **Ubuntu/Mint 20.04**

* Create the main folders

```bash
# as root
mkdir -p /usr/local/games/enemy-territory
chown 1000 /usr/local/games/enemy-territory && chmod 775 /usr/local/games/enemy-territory

mkdir -p /opt/games/enemy-territory
chown 1000 /opt/games/enemy-territory && chmod 775 /opt/games/enemy-territory

# as main user
cp -r base/* /usr/local/games/enemy-territory
cp -r server /opt/games/enemy-territory
```

## Launch the game

```bash
cd /usr/local/games/enemy-territory
./et-sdl-sound
```

Enjoy !

**NOTE** : Some librairies may be missing, you need to install it one by one (test to launch ./et.x86 and see missing libs)

## Create a systemd service (server creation **ONLY**)

In order to launch the server properly, a systemd service is a right solution instead of the **serverctl** sh script. Todo so :

* put the **[wolfenstein-et.service](./service/wolfenstein-et.service)** file in **/etc/systemd/system** directory (must be **root**)
* replace `<linux_user>` and `<path_to>` placeholder with your configuration
* enable the service (on reboot the service will autostart)
```bash
# as root
systemctl enable wolfenstein-et
```
* put the **[launch_server.bash](./service/launch_server.bash)** wherever you want (do not forget exec rights for your `<linux_user>`)
* start the service 
```bash
service wolfenstein-et start
```
* check the service status
```bash
service wolfenstein-et status
```

## Settings

More useful informations : https://wiki.archlinux.org/title/Wolfenstein:_Enemy_Territory

### Set screen size in **1920*1080**
* Open the player configuration file:
```bash
vi $HOME/.etwolf/etmain/profiles/<username>/etconfig.cfg
```

* Override this settings
```cfg
seta r_mode          -1      // -1 mean we are using a custom screen resolution
seta r_customwidth   1920    // monitor's width
seta r_customheight  1080    // monitor's height
```

## Common errors

On **Ubuntu 20.04** :
```
------- sound initialization -------
SDL audio driver initializing...
ALSA lib conf.c:3722:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so (/usr/lib/i386-linux-gnu/alsa-lib/libasound_module_conf_pulse.so: libasound_module_conf_pulse.so: cannot open shared object file: No such file or directory)
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default
SDL_AudioDriverName() = NULL
------------------------------------
```

You must install the corresponding 32 bits library :
```bash
sudo apt-get install libasound2-plugins:i386
```
