First post, by canadacow
DosBox Guide to Multiplayer Games
More recent versions of DosBox have had virtual modem support, and as of the writing of this guide, the CVS contains virtual IPX support. Virtual modem support emulates modem connectivity over the Internet. This makes it possible for people to play old DOS modem-based multiplayer games over the Internet, no extra hardware required. The virtual modem also effectively turns DOS BBS software like PC-Link, Qmodem and Ripterm into a Telnet client. This allows DOS modem software to connect to bulletin boards now made available over the Internet. While the virtual modem is limited to two DosBox sessions/individuals connected at one time, the virtual IPX support makes games that supported several connected players possible.
II. Virtual Modem Support
The virtual modem has been designed to simulate a modem as closely as possible. Like real modems, the virtual modem uses a COM port assigned through the dosbox.conf file. The virtual modem also makes use of the Hayes® AT command set to issue commands to the modem. The following is an example entry in the dosbox.conf file for modem configuration:
“modem=true” enables the modem emulation. To disable the emulation change it to read “modem=false”. DosBox has two COM ports, 1 and 2. Depending on the software compatibility, you may need to change this to 1, though the default setting, as shown here, should work in most cases. Finally, listenport sets the port that listens for incoming DosBox modem calls. Port 23 is typically the telnet port. For simplicity, leaving this value as is should provide for the easiest setup once in DosBox.
Once the modem is enabled in DosBox, one uses it as you would a regular modem, with a few exceptions. The following AT commands are valid with the DosBox Virtual Modem:
This is the standard dialing command for a modem. To connect to another computer, this should be the host name or IP address. For example ATDT127.0.0.1 and ATDTbob.internet.com are valid entries. Finally (this feature is only available in the CVS), one can dial by entering a pure stream of numbers. ATDT127000000001 is the equivalent to ATDT127.0.0.1. This
This command answers an incoming connect request. On receiving an incoming call, the modem will write out “RING” and a telephone ring will be heard. Typing ATA will finalize the connection and the two DosBox sessions should be connected.
ATS0 is the auto-answer parameter. Typing “ATS0=1” makes DosBox auto-answer any incoming calls. Typing “ATS0=0” (the default) disables auto-answer.
ATE0 turns character echo off, where as ATE1 turns character echo on. This is enabled before a connection. On connection, echo is disabled.
(As of this writing, this function is only available in the CVS) “ATNET1” tells DosBox you are connecting to a Telnet session. “ATNET0” (the default) tells DosBox you are connecting to another DosBox session. This option is useful to ensure data are transmitted properly over the respective connections.
ATI3 and ATI4 are simple information commands, only present because they are present in nearly all real modems as well.
* It should be noted that the virtual modem exists only as a way to connect modem-based DOS programs through the Internet. As of this writing, there is no direct modem access on any platform.
III. IPX Networking Support
The IPX networking emulation exists for pretty much the same reason as the modem emulation. All of the IPX networking is managed through the internal DosBox program IPXNET. For help on the IPX networking from inside DosBox, type “IPXNET HELP” (without quotes) and the program will list out the commands and relevant documentation.
With regard to actually setting up a network, one system needs to be the server. To set this up, in a DosBox section, one should type “IPXNET STARTSERVER” (without the quotes). The server DosBox session will automatically add itself to the virtual IPX network. In turn, for every other computer that should be part of the virtual IPX network, you’ll need to type “IPXNET CONNECT <computer host name or IP>”. For example, if your server is at bob.dosbox.com, you would type “IPXNET CONNECT bob.dosbox.com” on every non-server system. The following is an IPXNET command reference:
IPXNET CONNECT opens a connection to an IPX tunneling server running on another DosBox session. The "address" parameter specifies the IP address or host name of the server computer. One can also specify the UDP port to use. By default IPXNET uses port 213, the assigned IANA port for IPX tunneling, for its connection.
The syntax for IPXNET CONNECT is:
IPXNET CONNECT address <port>
IPXNET DISCONNECT closes the connection to the IPX tunneling server.
The syntax for IPXNET DISCONNECT is:
IPXNET STARTSERVER starts and IPX tunneling server on this DosBox session. By default, the server will accept connections on UDP port 213, though this can be changed. Once the server is started, DosBox will automatically start a client connection to the IPX tunneling server.
The syntax for IPXNET STARTSERVER is:
IPXNET STARTSERVER <port>
IPXNET STOPSERVER stops the IPX tunneling server running on this DosBox\nsession. Care should be taken to ensure that all other connections have terminated as well since stopping the server may cause lockups on other machines still using the IPX tunneling server.
The syntax for IPXNET STOPSERVER is:
IPXNET PING broadcasts a ping request through the IPX tunneled network. In response, all other connected computers will respond to the ping and report the time it took to receive and send the ping message.
The syntax for IPXNET PING is:
IPXNET STATUS reports the current state of this DosBox's sessions IPX tunneling network. For a list of the computers connected to the network use the IPXNET PING command.
The syntax for IPXNET STATUS is:
* Again, like the modem support, there is no direct IPX networking support. As such, your DosBox session has no way of seeing your real IPX network, if you indeed have one.
* The IPX networking has been tested with a number of programs. Currently, known problem games are One Must Fall 2097 and Tyrian. It is uncertain whether this incompatibility is CPU emulation related or IPX networking related.
This document is by no means a finished document. If you feel there is something that needs to be elaborated on, by all means let me (Canadacow) know on the VOGONS forum and I’ll do what I can to amend this.