First post, by zerker
- 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.
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.