DOSBox networking works in a client-server architecture, where one machine acts as a server and all the others connect to it as its clients. DOSBox emulates outdated protocols and actually routes them to Internet's own IP protocol (TCP/IP for serial/modem emulation and the even better UDP/IP for IPX emulation).
First, we must enable IPX networking emulation.
Find and open the dosbox.conf file (the configuration file for DOSBox); it should be located in the DOSBox directory.
You can find the dosbox.conf by browsing Start > All Programs > Dosbox
Inside the file, search for an entry labeled [ipx]. Below the explanation comment (marked with #), change the configuration line from ipx=false to ipx=true as shown in the example below.
[ipx] # ipx -- Enable ipx over UDP/IP emulation. ipx=true
You might find it hard to believe, but this is ALL of the tampering with the configuration files you will need.
Start IPX server
Power on DOSBox on all the computers that you want to participate in the LAN games. One of these computers will have to act as a server. The rest will be clients.
On the server machine, execute the following command:
ipxnet startserver [UDP port]
See screenshot below:
UDP port is optional. Otherwise it defaults to 213 (the assigned IANA port for IPX tunnelling). If you want another port, for example, port 19900, type:
ipxnet startserver 19900
If you change the default, it's customary to choose something above 1024 as anything below is considered reserved. In Linux specifically, only root (or superuser) can use port numbers lower than 1024.
Whatever UDP port is chosen (including the default), it must be forwarded and open to the outside network if a server is hidden behind a router (NAT).
On each one of the clients, run the following command to connect to the server:
ipxnet connect <IP> [UDP port]
Specifically, in my case:
ipxnet connect 192.168.2.100
See screenshot below:
Port is optional. The same rules apply as in #Start IPX server. For example:
ipxnet connect 192.168.2.100 19900
You now have the network running. You can confirm it by:
If you want to check the speed and/or see the list of server and all clients, type:
Start your game
If you're done, but want to remain in DOSBox, the clients can optionally use the following commands:
and only after all clients disconnect (or you'll risk locking them up), the server can type:
First, define Configuration:SerialPort.
If you change the default TCP port, it's customary to choose something above 1024 as anything below is considered reserved. In Linux specifically, only root (or superuser) can use port numbers lower than 1024.
Whatever TCP port is chosen (including the default 5000), it must be forwarded and open to the outside network if a server is hidden behind a router (NAT).
The game's modem options
You must enter the game's modem options and:
- Define the same COM number as you chose in DOSBox. If the game is hardcoded to a certain COM number, this must be the one you choose in DOSBox.
- Choose the highest modem's speed the game allows.
- For clients only If there's an address book, you can define the server in advance. Actually, some games might refuse to call anyone that's not listed in advance in the address book.
- The other game's modem options don't matter in DOSBox.
Exit the settings, enter the game itself and find the call/answer menu entry.
Emulating answering a call
Some games may want you to define an auto-answer command in advance, while others may want you to answer manually when the call comes in. Some may allow both modes.
In the first mode, the server should choose the "wait for calls" option in their game. If the game wants you to type a manual command, use "ATS0=1" (answer on first call).
In the second mode, the server should choose the "answer call" option when the game announces a call is coming in. If the game wants you to type a manual command, use "ATA".
Emulating making a call
The client should choose the "make a call" option in their game. Then supply the server's hostname or IP address.
If the game wants you to type a manual command, use "ATDT<IP>". For example, if the server is "hosty" <18.104.22.168>, type:
How to obtain computer's IP address
The quick and advanced way
If you're not afraid of the command prompt (surely if you use DOSBox without a frontend), browse to Start > All Programs > Accessories > Command Prompt. Once there, type "ipconfig".
The long but user friendly way
Go to "My Network Place"
Click on "View My Network Connections"
Right Click the Network that you are using and choose "Status", then, you will be able to obtain the computer's IP address in a local network.
- dedoimedo.com (the original article plus screenshots from actual multiplayer games)