VOGONS


First post, by yyzkevin

User metadata
Rank Member
Rank
Member

Is the IPX interface available in any way at a low level while booted into a DOS image? I do not care about formatting/framing etc I can figure that out myself and encapsulate it as needed, I just need a fast way to rx/tx with the outside world from a booted msdos image. I would attempt to implement it as a packet driver. I went down the route doing this with the serial port but its just too slow.

I am able to do this with dosbox-x and a modified ne2000, but I am trying to accomplish this with native dosbox.

Thanks!

www.yyzkevin.com

Reply 1 of 12, by Wengier

User metadata
Rank Member
Rank
Member

No, the builtin IPX interface is only available in the internal shell, not any guest DOS/Windows systems. Since what you are trying to achieve appears to beyond DOS gaming, I would recommend you to stick with DOSBox-X for these. Vanilla DOSBox is officially designed for DOS gaming only and will not support such usages, whereas DOSBox-X officially goes beyond gaming.

Reply 2 of 12, by _Rob

User metadata
Rank Member
Rank
Member

I would also suggest for IPX support after booting DOS that you check out the networking guide on the DOSBox-X Wiki. There are instructions for how to use the Novell IPX stack with the NE2000 emulation.

Reply 3 of 12, by yyzkevin

User metadata
Rank Member
Rank
Member

I already modified the the NE2000 emulation in Dosbox-X to use a UDP tunnel to connect to my cloud hosted virtual switch instead of using pcap to the local lan and it works great. The issue is, it requires a custom compiled copy of dosbox-x, and actually this effort is in fact for gaming, just not of the normal sense so I understand it reaches outside of the main focus of Dosbox. I require the full Novell IPX/SPX stack as some of the games were designed for netware. It is a problem asking somebody to download an unknown exe and run it and I am not close friends with some of the participants, and asking somebody to compile dosbox-x themselves is too much effort for most.

I was able to get the full novell ipx/spx stack running in Dosbox by essentially running a IPX to PD shim, and then the novel PD to IPX shim but of course the dosbox shell does not support the drive redirection so I cannot map any drives... this same method of course is possible with a SLIP to PD shim and the serial port in a dos booted image, but of course dosbox intended use does not make for high speed serial emulation so it is just too slow for my use.

I had just thought, if there was some low level way to access that IPX interface via some undocumented i/o space or emulated bios interrupts (i dont know exactly what I am asking for here) that there was hope I could spend time time and eventually write/modify some form of packet driver that could run in a dos image and low level gain access to the outside world in some way.

Sounds like it is not going to happen, but I will read through the dosbox source code a bit more and once I understand the situation better I will be able to accept the limitation and move on.

Thanks

www.yyzkevin.com

Reply 4 of 12, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

There is no network hardware emulation in regular DOSBox, IPX is emulated using only a software interrupt handler (which relies on DOSBox shell having control over memory allocation) so once you boot into another OS it's gone.

Reply 5 of 12, by _Rob

User metadata
Rank Member
Rank
Member

Regarding modifying the NE2000 emulation, there is a PR on the dosbox-x github page which adds support for a libslirp backend, in addition to the existing pcap backend. This PR will probably be merged soon.
Right now it is only for Linux though, Windows support still needs to be added.

The advantage of libslirp is that it does not need promiscuous mode, which is the most common problem with pcap.
The disadvantage is that it only works with TCP/IP, so you would have to encapsulate IPX or NetBios traffic. And it is best for client-server traffic, not peer-to-peer due to the network setup it creates.

Reply 6 of 12, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
_Rob wrote on 2021-01-06, 11:18:

The advantage of libslirp is that it does not need promiscuous mode, which is the most common problem with pcap.
The disadvantage is that it only works with TCP/IP, so you would have to encapsulate IPX or NetBios traffic. And it is best for client-server traffic, not peer-to-peer due to the network setup it creates.

That seems a bit like saying chopping your foot off gives the advantage of not having to buy new shoes. You're just replacing one problem with a different one.
The main idea of using PCAP is to allow the emulated DOSBox machine to communicate with other machines on the local network directly using IPX.

Reply 7 of 12, by _Rob

User metadata
Rank Member
Rank
Member

I agree with your general statement, but the problem is that PCAP does not work at all for some users. Namely if they only have WIFI (as very few implementations support promiscuous mode), which is becoming increasingly common.

Reply 8 of 12, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

But if their aim is to use native IPX (which is likely, since barely anything DOS related used TCP/IP) this isn't going to help at all. It's a solution for a non-existent problem; TCP/IP is already easily available using serial hardware emulation.

Reply 9 of 12, by _Rob

User metadata
Rank Member
Rank
Member
jmarsh wrote on 2021-01-06, 13:40:

But if their aim is to use native IPX (which is likely, since barely anything DOS related used TCP/IP) this isn't going to help at all. It's a solution for a non-existent problem; TCP/IP is already easily available using serial hardware emulation.

Agreed, just using it to run mTCP is of little use. But DOSBox-X also supports Win98SE, and it does work with that. And while setting up TCP/IP using serial emulation is possible, that is more complex for the typical user and at lower performance.

Reply 10 of 12, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Is there any demand for a client/server setup in the above emulators? Is that a viable option for real time games in emulation? Also, how many players are robustly supported by IPX in a peer-to-peer setup? I have not seen any (thorough) reports about it.

I think that the play by email option in some strategy games provides a robust option, but there is suprisingly not many comments about that option either.

Reply 11 of 12, by _Rob

User metadata
Rank Member
Rank
Member
hail-to-the-ryzen wrote on 2021-01-06, 17:28:

Is there any demand for a client/server setup in the above emulators? Is that a viable option for real time games in emulation? Also, how many players are robustly supported by IPX in a peer-to-peer setup? I have not seen any (thorough) reports about it.

I think that the play by email option in some strategy games provides a robust option, but there is suprisingly not many comments about that option either.

All good questions. The short of it, someone wanted the function, and did the work to write the implementation. And we have had the occasional question for working TCP/IP in Win98 where PCAP was not a real option.

Reply 12 of 12, by superfury

User metadata
Rank l33t++
Rank
l33t++

UniPCemu's server build supports a IPX over PPP connection. You can dial to it's IP address(or anything with the server:port combination) and connect using PPP. The UniPCemu build itself will route the PPP IPX and IPv4 packets to the normal ethernet connection. The other way around also works (packets sniffed on the ethernet will be put on the PPP if the IPX and/or IP addresses match the packets). Already tried Windows 95 using PPP using IPX to perform Doom 95 multiplayer with multiple instances.
Although, unlike Dosbox, IPX isn't mapped to IPv4 addresses and is put in their own address space (IPX over ethernet II protocol to be exact, much like PPPOE).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io