Tradewars on Linux

Tradewars 2002 on Ubuntu Linux 64-Bit

Setting up Tradewars

Many Sysops end up sending their users to a third party TWGS server or another door “party” server which is probably the easiest option available to quickly get Tradewars set up on a non-windows system.

It is, however, possible to get Tradewars 3.09 running natively under Linux with minor adjustments to your dosemu.conf file.

Dosemu Setup

Dosemu setup is fairly straight forward. I have created a Dosemu setup guide explaining all the configuration steps necessary to get doors running on your BBS. Please ensure you can run a regular door before you attempt to install Tradewars.

Configure DOSEMU

The dosemu configuration script can be found in /etc/dosemu/dosemu.conf and will need the following values to be set. I suggest that you leave the remaining values set as they currently are.

$_dosmem = (640)
$_xms = (4096)
$_ems = (4096)
$_ems_frame = (0xe400)
$_ems_uma_pages = (4)
$_ems_conv_pages = (24)
$_dpmi = (0x5000)
$_dpmi_base = (auto)
$_ignore_djgpp_null_derefs = (0)
$_mapping = "auto"

Install Tradewars

Install Tradewars in a directory that is accessible by Dosemu. My game is currently installed at:

/bbs/doors/TW2002/

Go into Dosemu and launch TEDIT.EXE and setup the correct paths to your BBS drop files as well as the Tradewars data files. Please remember that you are using the DOS path in Dosemu D:\DOORS\MYSTIC\TEMP#\ – not the Linux path.

Tradewars Batch File

Below is the batch file that I use to load Tradewars. You adjust the path accordingly.

@ECHO OFF
SET RTM=EXTMAX 1024
D:
CD D:\DOORS\TW2002\
D:\DOORS\TW2002\TW2002.EXE TWNODE=%1 NOXMS NOEMS BUFFER=16500 MULTITASK=YES

BBS Setup

At this point, everything is configured and should be ready to be added to the BBS. If you are running Mystic you will create a (DD) Exec external program in Mystic with the Data value set as in the below example:

stty cols 80 rows 25 && dosemu -I"serial { com %N virtual }" "/bbs/doors/TW2002/TW2002.BAT" %N /DOS

The serial option { com %N virtual } changes the virtual com port for each node. In my testing, I was only able to load one node at a time until I added this option.

At this point everything should be working and you will be able to log into the game. Do not forget to set up your external maintenance to run as a CRON job.