DoorNode is a node.js application for launching BBS door games using Dosbox on modern operating systems. It's designed to be used with MajorBBS/WorldGroup software to launch non-MBBS doors via the RLogin module, but it could be easily adapted to other use cases. It has been tested on Ubuntu Linux and OSX.
- Run BBS door games on a modern operating system using Dosbox
- Supports popular drop file formats including DOOR.SYS, DORINFO1.DEF, and DOORFILE.SR
- Supports multi-node operation
- RLogin server for easy MajorBBS/WorldGroup integration
- Debug server included
DoorNode is running behind the scenes on The Funknown BBS to launch non-MBBS door games such as Barren Realms Elite (BRE), Solar Realms Elite (SRE), The Pit, Legend of the Red Dragon (LORD), Exitilus, Usurper, Land of Devastation (LOD) and more. Go to the Games menu and select any of the above listed games to see it in action.
DoorNode has been tested on Ubuntu Linux and OSX but should work on any modern operating system.
- Install the latest stable version of node.js
- Clone the DoorNode repository:
git clone https://github.com/dinchak/doornode
- Modify
config.js
to match your preferences. See the configuration section below. - Copy your door installation files to somewhere in
dosbox/drive
. - Run
dosbox
from thedosbox
folder and install your doors. See the configuration section below. - Run
node app.js
to run DoorNode. - Connect to the Debug port by running
telnet localhost 1234
or by using your favorite terminal program. - Run a door from the Debug port to test if everything is working as expected.
- Configure your BBS software to connect to DoorNode via RLogin.
There are three types of configuration that need to happen: DoorNode configuration, the actual door program configuration, and MBBS/WorldGroup configuration.
The config.js
file in the root of the DoorNode repository should be all you need to modify. Here's an overview of the available configuration parameters:
port
- The RLogin port, defaults to 513. You will probably need to elevate node.js port access which can be done by running the following command:
sudo setcap 'cap_net_bind_service=+ep' `which node`
Please note that elevating node's security like this can have security consequences, please make sure you're aware of the implications. You can also listen on a non-privileged port and setup port forwarding, or any other solution you prefer.
-
debugPort
- The Debug port, defaults to 1234. You can connect to this port usingtelnet
or any terminal application to monitor usage and test launching door applications. -
dosbox.dosboxPath
- The full path to the dosbox executable. Just runwhich dosbox
from a terminal if you aren't sure. -
dosbox.configPath
- The path to the dosbox configuration files. Defaults to thedosbox
folder included in the repository. -
dosbox.drivePath
- The path to the dosbox drive. Defaults to thedosbox/drive
folder included in the repository. -
dosbox.startPort
- Dosbox communication is handled over a virtual serial port that listens on a TCP/IP port. Each node is launched on a separate port which DoorNode then connects to in order to facilitate communciation. This value plus the node number is the port Dosbox should listen on. -
dosbox.headless
- Controls Dosbox being launched in headless mode, which just sets the SDL_VIDEODRIVER variable todummy
preventing the window from coming up on the DoorNode server. Defaults totrue
but can be set tofalse
for debugging.
-
name
- The name of the module. For MajorBBS/WorldGroup it's important that the name not contain spaces or special characters. -
doorCmd
- The DOS path to the file that should be executed to launch the door. Many example batch files have been included. -
dropFileFormat
- Currently supported formats areDoorFileSR
,DorInfo
, andDoorSys
. -
dropFileDir
- The location to write the dropfile relative todosbox.drivePath
. -
multinode
-true
orfalse
. Iftrue
,dropFileDir
is ignored and dropfiles will instead be written toC:\NODES\NODEx
wherex
is the node number. -
removeLockFile
- If you need to delete a lock file after the door terminates then set this to a path relative todosbox.drivePath
.
The supplied dosbox/dosbox.conf
file is a template that will be copied to dosbox/dosbox1.conf
, dosbox/dosbox2.conf
, etc. for each node. The dosbox/drive
image comes pre-supplied with a few utilities including FAKESHAR.EXE
, BNU.COM
, and PKUNZIP.EXE
. This should be all that's needed to install most door games.
Each door game is configured a little differently, but generally speaking you'll want to install door games as follows:
-
Find the door game you want to install online and download the .ZIP file. Create a folder for it in
drive/dosbox/doors
and decompress it, either in your host operating system or within Dosbox. -
Run
dosbox
from thedrive/dosbox
folder to start it with the supplieddosbox.conf
file. This is an easy way to run setup programs and get door games ready to go. -
Some door games support multi-node operation. If so, configure it to look for drop files in
C:\NODES\NODEx
wherex
is the node number. For example, node 1's dropfile would beC:\NODES\NODE1\DORINFO1.DEF
. -
The
C:\DOORS\BIN
folder has many example batch files for popular door games and should help you get started.
DoorNode was designed to work with MajorBBS/WorldGroup where it's difficult to run these games. Integrating with the RLogin module is easy:
- Create a new menu item for each door game
- Edit the menu item and set it to a Module Page
- Set the Module Name to RLogin
- Set the command string as follows:
l <doornode ip> %U <module name> ansi
For example, if DoorNode was running on 192.168.1.200
and I was setting up the BRE
door, I would set the command string to:
l 192.168.1.200 %U BRE ansi
Just repeat the above process for each door module.
Feel free to open an issue or get ahold of me on The Funknown BBS and I'll be happy to help!