VOGONS


First post, by zerker

User metadata
Rank Member
Rank
Member

So I heard about the NE2000 DosBox patch, and decided to try it this morning. Got it all built and running and grabbed a driver package from https://github.com/gammy/dos_net_ne2000 and confirmed that the Doom 2 setup saw the interface. So far so good.

Back on my retro PC, I added the D-Link IPX network (dpdipx.com) to my packet driver config and Doom 2's setup is also happy on this end.

I started a test network game between the two of them, and the DosBox setup detected Player 2!
But the retro PC did not.

So I somehow had 1-way communication?

I ran Wireshark on my main PC, and saw broadcast IPX packets from both machines, but since the DosBox side was the one that worked, that doesn't tell me anything. And I can't exactly run Wireshark in DOS, so I also hooked up a Raspberry Pi and ran Wireshark there. It ALSO saw the broadcast packets from both sides. I've attached one of the Raspberry Pi's captures for reference.

Filename
doom2.pcapng.gz
File size
1.42 KiB
Downloads
56 downloads
File comment
Wireshark capture
File license
Fair use/fair dealing exception

So I tried a few things:

  • Directly connected one machine to the other instead of relying on the router. No difference.
  • Changed the spoofed MAC address DosBox uses to match my actual NIC's MAC address. No difference.
  • Tried Duke Nukem 3D. Same behaviour.
  • Tried Windows 98's IPX support instead. This actually worked LESS. Neither side saw each other, but the Wireshark trace looked the same!

System specs for reference are:
Intel SE440BX-2
Intel Pentium II-350
192 MB RAM
D-Link DFE-530TX
MS-DOS 6.0 or Windows 98SE (depending on test)

So I'm a bit stuck right now. Here are my relevant config files:

autoexec.bat (omitting non-relevant configurations)

@ECHO OFF
PROMPT $p$g
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H5 P330 E620 T6
SET MIDI=SYNTH:1 MAP:E MODE:0
SET CTCM=C:\SB16
SET PATH=C:\WINDOWS;C:\DOS;C:\Apps;C:\Apps\InfoZip;C:\SB16;C:\Apps\Freedos\Bin
SET TEMP=C:\TEMP
C:\SB16\CTCM
C:\SB16\DIAGNOSE /S /W=C:\WINDOWS
C:\SB16\AWEUTIL /S
C:\SB16\MIXERSET /P /Q
C:\SB16\CTCU.EXE /S /W=C:\WINDOWS
MODE COM2 19 N 8 1
GOTO %CONFIG%

REM Extra configs omitted

:PktNet
LH C:\DRIVERS\CTMOUSE\CTMOUSE.EXE
LH C:\WINDOWS\MSCDEX.EXE /S /D:mscd000
SET MTCPCFG=C:\Apps\mtcp\network.cfg
LH C:\DRIVERS\NETWORK\PKTDRV\DPDIPX.COM
GOTO END

:END

config.sys

[menu]
menuitem=Default
menuitem=Ultima7, Ultima 7
menuitem=EMS
menuitem=EMSCD, EMS with CD
menuitem=Network
menuitem=PktNet, Packet Driver Network

[common]
DEVICE=C:\DOS\HIMEM.SYS
SHELL=C:\DOS\COMMAND.COM /P /E:384
BUFFERS=10,0
FILES=40
STACKS=9,256
FCBS=4,0
DOS=HIGH

REM Extra configs omitted

[PktNet]
SHELL=C:\DOS\COMMAND.COM /P /E:512
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS
DOS=UMB
DEVICEHIGH=C:\DRIVERS\VIDE-CDD.SYS /D:MSCD000
DEVICEHIGH=C:\DRIVERS\NETWORK\PKTDRV\DLKFET.SYS -n 0x60
LASTDRIVE=Z

dosbox.conf

# Earlier sections omitted
[ipx]
# ipx: Enable ipx over UDP/IP emulation.

ipx=false

[ne2000]
# ne2000: Enable Ethernet passthrough. Requires [Win]Pcap.
# nicbase: The base address of the NE2000 board.
# nicirq: The interrupt it uses. Note serial2 uses IRQ3 as default.
# macaddr: The physical address the emulator will use on your network.
# If you have multiple DOSBoxes running on your network,
# this has to be changed for each. AC:DE:48 is an address range reserved for
# private use, so modify the last three number blocks.
# I.e. AC:DE:48:88:99:AB.
# realnic: Specifies which of your network interfaces is used.
# Write 'list' here to see the list of devices in the
# Status Window. Then make your choice and put either the
# interface number (2 or something) or a part of your adapters
# name, e.g. VIA here.

ne2000=true
nicbase=300
nicirq=3
macaddr=AC:DE:48:88:99:AA
realnic=enp5s0

[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
SET PATH=C:\Network
SET IPXPATH=C:\Network\IPX

Note that I was running through DosBox Game Launcher, so I manually mounted C: and ran IPXSTART.BAT seperately before testing.

Permissions on DosBox are set properly:

-rwsrwsr-x  1 root   root   14436264 Jul  9 07:24 dosbox

I've also played TCP/IP network games between these two PCs just fine, for reference.

Reply 2 of 13, by zerker

User metadata
Rank Member
Rank
Member

The drivers do not have a configuration file. The broadcast packets look identical in Wireshark from what I can tell. Packet type 802.3 "Ethernet Raw". Same payload too; the only difference is the source address.

Reply 3 of 13, by Sammy

User metadata
Rank Oldbie
Rank
Oldbie

you load, LSL, then the Driver NE2000.com, and then IPXODI ?

Is IPXODI the same Version on both Machines?

Have you tried it with another Game?

For Example, i know Screamer Rally should work, cause i tested it on my own.

Reply 4 of 13, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
zerker wrote:

Directly connected one machine to the other instead of relying on the router. No difference.

Wouldn't you need a crossover network cable for that particular scenario? (Such a thing is trivial to make if you have a crimper.)

If it works with a crossover network cable, but not with the router, then that would imply your router is doing something mysterious.

Reply 6 of 13, by Sammy

User metadata
Rank Oldbie
Rank
Oldbie
Jorpho wrote:
zerker wrote:

Directly connected one machine to the other instead of relying on the router. No difference.

Wouldn't you need a crossover network cable for that particular scenario? (Such a thing is trivial to make if you have a crimper.)

If it works with a crossover network cable, but not with the router, then that would imply your router is doing something mysterious.

yes you are right.
Crossover cable is needed for Direct connection.

But it's also possible to use a switch or a hub with 2 patch-cables.

Reply 7 of 13, by zerker

User metadata
Rank Member
Rank
Member

Crossover isn't needed for modern network cards due to a wonderful invention called Auto MDI-X. The i5 PC running DosBox definitely has this.

If it didn't, I wouldn't even get the one-way communication. Regardless, it doesn't look like the router is blocking IPX traffic or anything, so I'll do most of my testing via the router going forward.

The (DOSBOX-running NE2000) driver package is linked in my first post. For reference on the D-Link side, I uploaded a driver CD to the vintage driver library thread. Here it is as well if curious:
http://www.zerker.ca/misc/D-LINK%20DFE-530TX.zip

It does have an ODI driver as well, so I will try that tomorrow and get back to you guys.

EDIT: Nevermind, I couldn't wait, so I tested it now. I'll be damned, the ODI driver worked. Weird that the D-Link card comes with an IPX packet-driver compatible layer application, DOOM 2 was able to use it to send packets, but it wasn't compatible enough to receive them. 😕

Maybe I'll finally live the dream of having a ROTT deathmatch with more than two players.

Reply 8 of 13, by kode54

User metadata
Rank Member
Rank
Member

I doubt you'll be able to network Dosbox with a real machine running an IPX network. Dosbox does not actually talk IPX outside the confines of its own internal network. It talks a custom TCP protocol designed to interface with other instances of Dosbox.

Reply 9 of 13, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
kode54 wrote:

I doubt you'll be able to network Dosbox with a real machine running an IPX network. Dosbox does not actually talk IPX outside the confines of its own internal network. It talks a custom TCP protocol designed to interface with other instances of Dosbox.

That is not the case if you are using DOSBox with the NE2000 patch, as stated in the OP.

Also, he says it's already working. 😜

Reply 10 of 13, by Sammy

User metadata
Rank Oldbie
Rank
Oldbie
zerker wrote:

EDIT: Nevermind, I couldn't wait, so I tested it now. I'll be damned, the ODI driver worked. Weird that the D-Link card comes with an IPX packet-driver compatible layer application, DOOM 2 was able to use it to send packets, but it wasn't compatible enough to receive them. 😕

Maybe I'll finally live the dream of having a ROTT deathmatch with more than two players.

I don't know if its not working because of the Packet driver... it can also be that the Packet Driver is not working right.

I had some Problems to get my Network card working with the Paket Driver... it loads but i was unable to make a connection.

Then i figured out, i had to exclude the Adapter Ram with X=.... .... in Emm386 Line in Config.sys

Reply 11 of 13, by zerker

User metadata
Rank Member
Rank
Member

Naw, that wasn't it. It still worked fine for MTCP and Arachne. I commented out EMM386 to test, but it still behaved the same.

Of course, now I have a system config for each of the three major DOS-driver types. Yay?