This is an old revision of the document!
Table of Contents
DOSEMU2
Synchronet has run DOS Doors under Linux for years using DOSEMU. Many Sysops find that it meets their needs very well and is stable. However, DOSEMU has not been maintained, has controversial licensing terms, and not every DOOR program works well with it. This page will detail the modifications made to get DOSEMU2 running under Synchronet for Linux with DOS-based DOORS.
Motivation
My primary motivation is to get Tradewars 2002 ver 3.09 running under Synchronet for Linux, something I have not been able to do with Dosemu.
Progress
I have set up a test BBS conveniently named “Dosemu2 Test BBS” which can be accessed by telnet or ssh at dosemu2.mystic.dog So far I have gotten 4 versions of Tradewars 2002 running under Dosemu2.
They are Tradewars 2002 versions:
- 1.03d
- 2.0 wide beta 8
- 2.0 wide beta A
- 3.09
In addition, I have Global Wars, Freshwater Fishing Simulator, Legend Of The Red Dragon ver 3.55, Scrabble, and Stack'Em running under Dosemu2 on the test BBS.
Overview Of The Problem
The primary issue with Dosemu2 and Synchronet is that it has different command line options than dosemu, and the external.bat called by Synchronet does not work with dosemu2. Coming very soon will be my modifications to external.bat and dosemu.ini that work for me so far. In time I hope that dosemu2 will be fully supported by Synchronet. That may very well happen before I get this page finished...
Reaching Me
The best way to prompt me to quicker action is nag Hobo in #synchronet on the Synchronet IRC. Or leave me a message on the Dosemu2 Test BBS.
Installation of DOSEMU2
There are multiple methods of installing DOSEMU2 to include building from source and through a repository. Taking a simpler approach and ensuring you have the latest build, we will use the DOSEMU2 repository hosted on Gitlab.
First, add the repository,
sudo add-apt-repository ppa:dosemu2/ppa
Then update and install,
sudo apt update
sudo apt install dosemu2
If you prefer to use the latest FreeDOS environment, change the second command, to read sudo apt install dosemu2 fdpp
. Once you accept the changes to your system, DOSEMU2 and FreeDOS will be installed.
Recommended Global Parameters
Two files exist to configure DOSEMU2 (and DOSEMU) for Synchronet for Linux. $SBBSCTRL/dosemu.conf
and $SBBSEXEC/dosemu.ini
. The configuration file, $SBBSCTRL/dosemu.conf
is the configuration file read by DOSEMU2 upon start and $SBBSEXEC/dosemu.ini
is for
DOOR customization parameters such as drive redirection, UART, etc. (more information can be found in Use DOS Doors with Synchronet on Linux and in the comments within $SBBSEXEC/dosemu.ini
).
As specified in Use DOS Doors with Synchronet on Linux Drive Letters, it is recommended to continue using D:, E:, F:, G:, and H:. To adjust, add a line to $SBBSCTRL/dosemu.conf
to read $_hdimage = “+0 -5 +1”
. This will ensure that DOSEMU2 will skip drives D: through H: and begin adding internal drives at drive I:.
(Added by Nightfox)
From this issue filed in GitLab, filed by Ragnarok, there are some recommendations for getting DOSEMU2 working with Synchronet.
Update the cmd settings in exec/dosemu.ini:
cmd=/usr/bin/env $TERM HOME=$CTRLDIR QUIET=1 DOSDRIVE_D=$NODEDIR NODEDIR=$NODEDIR $DOSEMUBIN -d $NODEDIR -d $XTRNDIR -I"video { none }" $VIRTUALCONF -f$DOSEMUCONF -E$EXTBAT -o$NODEDIRdosemu_boot.log $EXTLOG [stdio] cmd=/usr/bin/env $TERM HOME=$CTRLDIR QUIET=1 DOSDRIVE_D=$NODEDIR NODEDIR=$NODEDIR $DOSEMUBIN -d $NODEDIR -d $XTRNDIR -I"video { none }" -I'keystroke "\n"' $VIRTUALCONF -f$DOSEMUCONF -E$EXTBAT -o$NODEDIRdosemu_boot.log $EXTLOG
In ctrl/dosemu.conf, add the following two lines (and change the path to sbbs to match what it is on your system):
$_hdimage = "+0 -2 /sbbs/ctrl /sbbs/data /sbbs/exec +1" $_lredir_paths = "/sbbs"
Also, in exec/external.bat, it has been suggested to change the backslashes to forward slashes on the lredir lines:
@lredir D: linux/fs$NODEDIR >NUL @lredir E: linux/fs$XTRNDIR >NUL @lredir F: linux/fs$CTRLDIR >NUL @lredir G: linux/fs$DATADIR >NUL @lredir H: linux/fs$EXECDIR >NUL
In my (Nightfox) experience, removing the “linux/fs” portion seems to work:
@lredir -f E: $XTRNDIR >NUL @lredir -f F: $CTRLDIR >NUL @lredir -f G: $DATADIR >NUL @lredir -f H: $EXECDIR >NUL @lredir -f D: $NODEDIR >NUL