15

Mission: I'm trying to simulate a classic ~286/386/486/Pentium inside my modern PC (running Windows 10) in the most authentic way possible.

Just a quick note to say that I (Sarah Walker) have decided to call it quits. Thanks to those who sent supportive messages, they're genuinely appreciated. Also thanks to those who have supported me and the project over the last decade or so.

Source: https://www.pcem-emulator.co.uk/

Wednesday, June 26th, 2019 - Qbix

DOSBox 0.74-3 has been released!

Source: https://www.dosbox.com/

2019? Hasn't DOSBox been at 0.74-* for the last 20 years or something? I seem to recall running that version waaaaay back.

I've tried using VMware, but sadly, it runs old DOS/Windows horribly and all wrong.

I've tried using VirtualBox, but it had bizarre bugs which I couldn't work around, and clearly isn't made for this either way.

16
  • 27
    She did give a reason: "I'm done. This isn't fun anymore." I'll leave it at that. Aug 20 at 8:51
  • 8
    So what if they're not supported anymore. Neither are the Apple II, Atari 800 or the Commodore 64, but people still use them.
    – Tim Locke
    Aug 20 at 13:14
  • 17
    Not clear why anybody owes you a reason for moving on. You don’t even know them.
    – Jon Custer
    Aug 20 at 15:50
  • 16
    PCem and Dosbox are open source. The point about open source is that you can change it yourself, you're not stuck asking someone else to do what you want. Aug 20 at 16:59
  • 7
    I suppose that DosBox doesn't progress very fast any more because essentially everything it is designed for works, and the demands are fairly static (the old hardware is a finite set, and the old programs as well). What is not working for you? Aug 22 at 14:48
37

As others have mentioned, PCem is still perfectly usable, even if it’s no longer maintained by its original author (who is, or at least was, open to handing over maintenance to someone else, should someone step up). Since you’re on Windows, which has an excellent track record for maintaining backwards compatibility, it’s likely that the existing Windows binaries of PCem will continue running for a long time.

DOSBox is still being maintained, there are lots of changes accumulating in its development repository — but there haven’t been any releases in a long time, as you mention (the 0.74-x releases are bugfix releases of 0.74, and don’t include new features from the development branch). Its authors do plan on making a new release at some point, but they want to ensure that there are no regressions (or as few as possible), which is difficult.

DOSBox-X is also actively maintained and gets frequent releases. It has a different focus compared to DOSBox, initially concentrating on improved fidelity in order to run demoscene productions, and now expanding to improved fidelity in general.

Another full PC emulator which is still actively developed is UniPCemu, originally for the PSP but now available for a number of platforms including Windows. Its 8086/8088 emulation is close to cycle-accurate (4% off according to the UniPCemu wiki).

There are forks of PCem too, but given the controversies there I’ll avoid naming them, let alone linking to them.

It’s worth checking out MAME as well, it includes PC emulation and its developers strive for accuracy (but I don’t know how accurate its emulation of various PCs is).

Another possibility, still doable inside your modern PC, is an actual PC such as the WeeCee — it can even be configured to run quite a lot of speed-sensitive games well enough to play!

12
  • 2
    From what I remember, they've said they do want to make a release of DOSBox 0.75 in the near future (by their calendar) but it's taking a long time to tally up and fix compatibility regressions since 0.74.
    – ssokolow
    Aug 20 at 11:24
  • 2
    The fork that Stephen doesn't want to name is called 86Box.
    – knol
    Aug 20 at 21:59
  • 3
    I don't really understand the "controversies" that you mention surrounding PCem. I haven't followed anything related to it, but in looking at it after reading this Q&A, it looks like an awesome project that is already extremely mature, and, secondarily, it looks like the original author and maintainer has decided to step down and move on to other things. That's... fine. Not a controversy, for sure. People step down and move on all the time, especially with open-source projects. Someone else can step up to take over, or the community-at-large will, the magic of open source. What am I missing?
    – Cody Gray
    Aug 21 at 0:27
  • 3
    @CodyGray: Based on this Reddit thread, which was one of the first results I got when I googled for "pcem", it would seem quite a lot. (Scroll down a few pages.) Aug 21 at 1:19
  • 8
    @Cody you’re missing the harassment campaign targeting Sarah Walker, PCem’s developer. I definitely agree that there’s no controversy in wanting to stop maintaining a project, maintainers don’t owe anyone anything in general. Aug 21 at 7:07
6

There's quite a few browser-based ones on PCjs.

PCx86 emulates the Intel 8088, 80186, 80286 and 80386 CPUs, and it faithfully renders characters and graphics produced by the IBM Monochrome Display Adapter (MDA), Color Graphics Adapter (CGA), Enhanced Graphics Adapter (EGA), and Video Graphics Array (VGA) video cards.

Support for assorted motherboard and expansion bus components (eg, disk controllers, parallel and serial ports, etc) is available in any appropriately configured machine, along with the powerful built-in PCjs Debugger that provides visual access and control of the simulated hardware.

You can run it locally, also.

6

Is BOCHS any good for this sort of thing?

Bochs can be compiled to emulate many different x86 CPUs, from early 386 to the most recent x86-64 Intel and AMD processors which may even not reached the market yet.

It has a good built-in debugger (so you can single-step machine instructions even with interrupts disabled) that's widely recommended for "OS development" stuff (including legacy BIOS bootloaders that switch from real to protected mode), since its debugger understands segmentation (unlike GDB remote-debugging qemu), and can parse+dump the page tables, GDT, and IDT to see if your setup actually matches what you meant to do.

It doesn't AFAIK do cycle-accurate emulation of timing of execution. Its x86 emulation is pure interpreter, not dynamic translation to host instructions, but I don't think it really tries to simulate guest CPU clock-cycles. (Instead aiming for emulation speed within the constraints of pure interpreter, to make it usable for more complex guests.) Darek Mihocka and Stanislav Shwartsman wrote a paper about the general design, Virtualization Without Direct Execution or Jitting: Designing a Portable Virtual Machine Infrastructure. (Yes, that Darek Mihocka, author of various other emulators such as the Gemulator Atari ST emulator.)

As far as faithfulness of hardware outside the CPU, IDK. The guest machine can have a NIC and an ISA SB16 sound card.

On the plus side, BOCHS is still actively maintained, and even ported to Android with SDL for graphics output, according to the FAQ.

1
  • 5
    Bochs is pretty good, it even has Voodoo Graphics emulation now. But its strengths lie in allowing people to understand what’s going on in a system, rather than providing a useful environment for running all sorts of PC programs (or rather, games — for most applications it’s fine). I tend to think of Bochs as a fantastic full-system debugger, capable of emulating even quite recent x86 CPUs. (I’m the Bochs maintainer in Debian.) Aug 21 at 7:14
4

Since you mentioned PCem, consider 86Box. It's what I've been using; unfortunately it doesn't have Linux version so I need either a dual-boot or a VM.

86Box is a low level x86 emulator that runs older operating systems and software designed for IBM PC systems and compatibles from 1981 through fairly recent system designs based on the PCI bus.

4

I know you said 286+, though I think the list would be incomplete without mentioning PCE. It performs full emulation of IBM PC/XT (8088) hardware that implements the chipset/ISA using the actual BIOS images of the PC, video cards and hard drive controllers. I believe it does aim to do cycle-accurate hardware emulation too.

It is an actively maintained project - at the time of this writing, the latest snapshot was this morning.

There are also other versions that exactly emulate other vintage platforms such as classic Mac and Atari ST.

0

Another nice browser-based emulator I recently discovered is

http://copy.sh/v86

One unique feature is COM1: emulation - connected into a textbox for easy handling.

-1

Unfortunately, DOSBox isn't a PC emulator, or even an MS-DOS emulator - it's more of a DOS game/application emulator. Eg, it doesn't support many MS-DOS functions (eg FOR command in batch processing), and you'll struggle to install or run Windows 95 on it.

I realise that isn't much help but it seems to be a common misconception that I found out the hard way.

  • PCem does sound like the way to go as others have said
  • VMware can run MS-DOS bare metal - but things like screen scaling, sound etc are not ideal

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.