DOSBox-X: Free, cross-platform and complete DOS, Windows 3.x and 9x emulation
dosbox-x.com
dosbox-x.com
Back in 2012 I worked at a large manufacturing company. They had an old IBM PC running IBM DOS which controlled a vital system at the beginning of their production line. This machine had been chucking along since 1992 and now someone high up had been made aware that it could be a potential risk if this machine stopped working. It was therefore decided that this PC should be replaced/upgrade if possible.
After investigating I learned it communicated with a PLC through the RS-232 interface and ran some special sauce software from a company that stopped existing in 1995. Previous upgrade attempts involved virtualization, but that did not work since the program ran too quickly on modern hardware.
My solution was to copy everything from the old HDD to a new computer, install DOSBox and configure the serial port. The first few attempts caused some sirens and alarms to go off in the building, which was "exiting", but after fiddling with the emulation speed I managed to get it to work.
To this day, unless something drastic has changed, a billion $ company is running DOSBox in production (and I literally mean production).
Also, a side note. The old PC was still connected to a modem with a dedicated phone line. At some point it had been remotely operated through some kind of Norton remote control software. I made sure to turn off the modem and did not bring it over to the new DOSBox setup. Imagine if someone had war dialed into the machine... They could have caused a major disturbance and potentially started a fire.
That said, as long as it works...
I would also assume that the PLC just gets some commands from the master.
Granted, these might be too many assumptions.
Yep.
Modern USB/TCP connected PLCs just encapsulate RS-232 data into USB or TCP packets, nothing else (for backward compatibility). Also there are encapsulation and decapsulation devices which enables archaic PLCs and other industrial devices to be retrofitted to more modern systems.
Moreover, the OP noted that emulation speed was at critical importance so, the code is CPU speed sensitive. Missing specs, missing company, missing source plus time sensitivity makes this endeavor very risky if not hard.
Sniffing a protocol to reverse engineer stuff, is like trying to learn a new language by listening to conversations of a ground-level monitor and a crane operator.
See, the situation was that IT management, who officially had the responsibility for the PC saw it as a risk because we in IT were unable to do anything if the system died. But the production line management, who had to pay for the upgrade, saw no reason to do it because it was "working fine!".
Sure it was working fine, and had been for almost 20 years. But WHEN it would inevitably give up the ghost they would be completely hosed.
And that's before you deal with the rarity of an interface card that's literally impossible to purchase at any price today, so you better hope someone has saved spares.
Typically folks will go looking for these services after the device has failed :(
[1] Okay a couple of issues. It needs compatibility mode for the colours to look right. But that option is built into Windows so I don't really consider that a failure of compatibility. And the installer is 16-bit and won't run on 64-bit windows. But some years ago I made a copy of it after install and the actual installed game is 32-bit and runs fine.
Although I already see that it has a ton of features on top of the features of DOSBox, and their scopes differ quite a bit.
DosBox-X may also be better at some timing critical stuff such as demo's.
Edit: Vanilla DOSBox is also unlikely to add support for more hardware (e.g. MMX or early 3D accelerators) because they don't want to maintain it and it won't be needed by most games.
So it really comes as no surprise to me that there are actually many DOSBox forks.
DOSBox-X is a cross-platform DOS emulator based on the DOSBox project (www.dosbox.com).
Like DOSBox, it emulates a PC necessary for running many MS-DOS games and applications that simply cannot be run on modern PCs and operating systems. However, while the main focus of DOSBox is for running DOS games, DOSBox-X goes much further than this. Started as a fork of the DOSBox project, it retains compatibility with the wide base of DOS games and DOS gaming DOSBox was designed for. But it is also a platform for running DOS applications, including emulating the environments to run Windows 3.x, 9x and ME and software written for those versions of Windows.
Also, Retroarch has a Dosbox core, and Retroarch with some cores works on the PS Vita handheld console, and as a result there's Dosbox on Vita. However, it's said to be quite a pain to set up for a particular game, with text configs. For jailbroken-PSP owners, Dosbox is apparently ported as a homebrew app. I'm vaguely looking forward to trying System Shock on Vita, but with my luck I'm not holding my breath.
I can emulate Windows 98SE on a Pentium 133 MHz with my 2500U AMD Ryzen laptop. It's convenient, since you can copy your DOS games on the machine over the network.
I successfully installed the 3dfx Voodoo 2 driver and the games run just fine.
Still, an ambitious project.
I wonder if the games of today will ever get the kind of aftermarket support that the DOS era has, given DRM and OS hooks and the like. It seems companies would rather games today be disposable and incompatible tomorrow so you can either buy the sequel or re-buy the game again on the next platform.
However, I do worry about games (or, in some cases, the DRM on some games) that require the player always be online. If the game or DRM servers are taken down in the future and the developer doesn't release a patch to remove the always online requirement, the game could end up being unplayable. If it's popular enough, people may reverse-engineer third party servers, but this can present more challenges, e.g. getting SSL certificates from a CA your device trusts; on a PC you could manually trust the certificate, but on a console you likely don't have that option.
It's amazing. The combination of consumer SoC boards, next gen emulation, 3D printing and AI techniques like super-resolution are generating not just archival efforts, but active development. I just love that there is a very active market for RetroPie kits ;)
It's not like back then companies were any different.
In anycase this is a great project, and it's nice to be able to run Windows 9x in dosbox, something standard dosbox did not do reliably.
The result will probably still run on modern Windows, too
Oh My God
It was 2004, and their intro programming course was still taught in Pascal. We hacked on a version of Turbo Pascal that might have dated to when the Soviet Union still existed, and I remember that cheery blue terminal interface fondly. It left me with an irrational life-long love of text-based interfaces.
It needs the Unicode APIs
Also, be aware if you are using your existing DOSBox directory: games that require installation might not work if installed via the original DOSBox.
Why? I have installed them on bare metal aeons ago and only copied since then. All I had to change occasionally was sound card details.
Still, great project, and I prefer it over the OG DOSBox.
It was so impressive when I first installed a Voodoo 2 card and launched it to see insanely smooth graphics ╰(°▽°)╯
Like KJAH and Funami FM’s Teriyaki-chan <3
I'm excited to play Need for Speed 2 SE & Carmageddon 2 actually.
Some games still run poorly on DOSBox, despite it being games focused... and of course then there is Win98 games that are a pain, I wanted to play "Gangsters" but that game use a unholy mix of GDI + DirectDraw to draw UI elements and modern windows 'run' the game but freak out completely, getting confused on how to draw the UI.