• Printable version
  • Recommend this page
  • Download page as PDF
  • PDF Book - Add/Remove page
  •           

Dedicated Server Linux setup tutorial for TRON 2.0

Tutorial by schmatzler

I figured out a way to run it on Linux. Without a monitor, from commandline and with an extra user in its own environment, so it should not be possible to use its security holes for gaining access to your machine. I also added a failsafe script that kicks in and restarts the server if it crashes.

You will have to install TRON 2.0, the Unofficial patch v1.042 and Killer App Mod on your Windows machine in order to copy some files from there later on. Lets start:

First, we log in to our machine via SSH (as root user) and create a new user called gameserver. This one will be used for running our TRON 2.0 server:

useradd –home-dir /home/gameserver –password swordfish –shell /bin/false gameserver

Now we have a new user without a shell. No one can log in to your box with this user. Its home directory is /home/gameserver. Fine. Let's move on, the next step is installing the needed software for running the TRON 2.0 server:

apt-get install wine xvfb

WINE is needed to emulate a Windows environment, xvfb is creating a virtual screen later on, so we can run the server without a screen attached.

Now create a new directory /home/gameserver/tron with

mkdir /home/gameserver/tron

and place the following files into it:

Directories and all subfiles in them:

Custom
LightCycleGameData
Profiles
ServerData
tcdg

Files:

Engine.rez
Game.rez
Game2.rez
mfc42.dll
SndDrv.dll
Sound.rez
TRONSrv.exe
autoexec.cfg
bl.dat
gamep5.rez
gamep6.rez
launchcmds.txt
ltmsg.dll
msvcirt.dll
server.dll

Note that there has to be a config inside the ServerData folder. And JUST ONE CONFIG. So you should start up the program at least one time on your Windows box and do all the required settings in the Multiplayer wizard. After that, you have a preconfigured config file that you can copy to your Linux box.

Second note: Get a msvcirt.dll somewhere on the internet or copy it over from your Windows box into the TRON 2.0 folder. WINE needs this file to start up the server.

This is it - the TRON 2.0 server files are on your box and your user is created. But in order to start up properly it still needs some registry entries in your fake Windows environment. Otherwise the TRONSrv.exe fails with a “Could not load resource file” error.

To create your fake WINE folder, type

sudo -s -u gameserver
xvfb-run -a winecfg

into your terminal. The program will create a /home/gameserver/.wine folder for our settings. In that folder, our registry settings are stored.

Press CTRL+C to quit the program (you can't use it without a display) and type

exit

to return to your previous user.

Now type the following into your terminal

mcedit /home/gameserver/.wine/system.reg

An editor should open up. If not, install the program mc with apt-get install mc.

Directly after the line

[Software\\Microsoft\\Windows NT\\CurrentVersion\\SvcHost] 1338803243
“netsvcs”=str(7):“BITS\0”

add the following code

[Software\\Monolith Productions\\TRON 2.0\\1.0] 1339521803
“CDKey”=“YOUR-CDKE-YGOE-SHER-E000”
“Commands”=”-windowtitle \”TRON 2.0: Killer App Mod\”“
“InstallDir”=“Z:\\tron”
“Language”=“English”
“Last Random”=dword:00000000
“Num Launcher Runs”=dword:00000001
“OptionsWarning”=dword:00000001
“ProfileName”=“Player”
“Save Commands”=dword:00000001
“SelectedMod”=“Retail”
“UpdateCommandLine0”=”-rez gamep5.rez”
“UpdateCommandLine1”=”-rez gamep6.rez”
“UpdateCommandLine4”=”-rez \”Z:\\tron\\tcdg\\game\”“
“UpdateNum”=dword:00000005

Don't forget to enter a correct CD-Key. I will not give you mine :)

Since you chose to start TRONSrv.exe from the Z: drive you will still have to tell WINE which folder to use as the Z: drive. In our case, this is /home/gameserver. To do so, create a symlink with the following commands:

mkdir /home/gameserver/.wine/dosdevices/z:
ln -s /home/gameserver /home/gameserver/.wine/dosdevices/z:

Now we set up a script that starts your TRON 2.0 server.

Create a new crontab for the gameserver user with the following command:

EDITOR=mcedit crontab -e -u gameserver

Paste the following content into the editor and press F2+F10 to save and close it:

MAILTO=”“
* * * * * /home/gameserver/tron_check.sh

What this does: It starts the script tron_check.sh every 60 seconds - so we gonna have to create that and fill it with contents:

mcedit /home/gameserver/tron_check.sh

The editor opens again. This time, paste the following commands into it. Close with F2+F10.

#!/bin/bash
# check daemon
ps -ef | grep -v grep | grep TRONSrv.exe
# if not found - equals to 1, start it
if [ $? -eq 1 ]
then
cd tron && nohup xvfb-run -a wine TRONSrv.exe >/dev/null 2>/dev/null &
else
echo “tron found - do nothing”
fi

Important: Don't add more than one config in the ServerData folder. This does not work and opens the wizard. Since we have no screen, we can't use it to start the server.

Now we will make sure, that the whole directory belongs to the right user and that the script is executable:

chown -R gameserver:gameserver /home/gameserver
chmod +x /home/gameserver/tron_check.sh

Done! Now wait some seconds and your server should show up in the master list! If not, unblock the ports 13139, 28888-29901 (TCP) and 27888-29901 (UDP) in your firewall.

You can check my server status here, it is running very stable via WINE:

http://tron-servers.net/

Running a second server is also possible, but a bit more complicated. I will not cover that here, however I am here if anyone needs assistance.