There’s Always Room For Another Cycle Accurate PC Emulator

While many Hackaday readers will have their own pieces of classic hardware lovingly preserved, it still remains that most of us get our fix of retro goodness through emulation. And while there are emulators aplenty for almost every platform imaginable, the world of emulation is never complete. Thus we’re happy to encounter a new player in the form of MartyPC, a cycle-accurate 8088 PC emulator written in Rust.

It’s a project that started only in April 2022, but alongside such in-depth processor support it has the full range of PC and XT peripherals including CGA and VGA cards to the extent that it will run even the most hardware-demanding demos. Below the break you can see it running the fiendishly hardware-specific PC demo Area 5150 — thought to be the first time an emulator has managed this task.

If there’s a snag it’s that the releases are so far Windows-only, though it’s claimed that it should also compile on other major platforms. There’s also a WebAssembly version, though sadly the link to it doesn’t work. We look forward to this emulator maturing, because we’re sure it will become a PC standby. After all, not everyone managed to snag one of the recent batch of new hardware.

16 thoughts on “There’s Always Room For Another Cycle Accurate PC Emulator

      1. weird to hear about dosemu in 2023. back in the 90s, i used it to run my WWIV BBS under linux on a 100MHz 486 with 4MB of RAM (painful to even imagine today). i don’t think dosbox existed back then and i couldn’t have afforded the emulation overhead anyways. so dosemu using the CPU’s virtualization capabilities was a godsend. but it was a hassle because it required some magic kernel tweaks?

        when i revisited the question years later, dosbox was the obvious choice, and i use it regularly today to abuse my children’s cultural awareness with videogames from 20 years before they were born. it’s about 90% suitable, imo.

        do people really still use dosemu? i see it hasn’t really been maintained in 10+ years. i kind of hoped that maybe these days it isn’t as much hassle to set up but there’s no debian package and i’m not really optimistic that it doesn’t rely on some kernel interface that has drifted :)

    1. From the readme: “MartyPC is a cross-platform IBM PC emulator written in Rust. Development began April, 2022. It should build on Windows, Linux and MacOS (Including M1). Currently, releases are Windows only.”
      You can compile it yourself on Linux. There isn’t a pre-built binary release yet.

      1. Tried earlier. cargo builds it without issue. Having trouble finding all the needed roms but found a few of them and it appears to run. So I’d say it’s pretty much working on linux.

    2. There are alternatives. MS-DOS Player, DOSBox-X, PCem/86Box.

      MartyPC is aimed accurate IBM PC Model 5150 emulation. And IBM PC/XT Model 5160 emulation, respectively.
      It runs best with 16-Bit versions of MS-DOS and PC-DOS.

      It won’t give you compatibility with late DOS applications from the 90s, which expect 80186 and higher CPUs or things like EMS and XMS.

      FreeDOS, while being very ambitious, works best on 386 and higher PCs. It’s not very good with XT era hardware. FreeDOS tries to develop DOS further, to improve it for modern hardware. DOS users often borrow its utilities for use under classic DOSes, though.

      1. Not sure. MartyPC is very advanced. For output, it uses shaders running on the graphics cards, if I understand correctly.

        It certainly doesn’t run on Windows XP/7 anymore. It needs Windows 10/11 level libraries and powerful PC hardware. So maybe that’s why WINE isn’t good enough yet.

        But MartyPC very accurate and compatible. That’s what I heard, at least. The community is very positive about this project, including writers of demoscene productions.

        Neither my Mac Pro nor my VMs are powerful enough to run it, unfortunately. But that’s not the fault of the emulator. That modern Rust framework demands this, rather. It’s being aimed at modern technology, so I won’t complain.

  1. Hi! Dev here. Thanks for the post! I’ve fixed the links to the web demos!

    https://dbalsom.github.io/martypc/web/player.html?title=8088mph
    https://dbalsom.github.io/martypc/web/player.html?title=area5150

    I will also mention that the emulator compiles easily under both Linux and Mac.

    Just install the Rust toolchain:
    https://rustup.rs/

    On linux, install any dependencies needed:
    sudo apt-get install cmake libfontconfig libfontconfig1-dev

    Check out the repository and build!
    cargo build -r

  2. Very cool! I am looking forward to looking at the Rust implementation, as I am a Rust newbie.

    The release version works as advertised in my Win10 VMWare session.

    I was able to build it just fine in Ubuntu 22 (“cargo build -r”) after adding a few extra development lib packages with apt. I used ROMS and floppies from release version to run it, which also mostly works. There is something wrong with the keyboard under Linux, however — shifted number and symbol keys don’t work (so I couldn’t get ‘:’ to access the B: floppy, for instance).

    1. Update: I tried downloading the latest from github and the keyboard problem under Ubuntu is fixed! I played with it all day yesterday, and was very impressed. Very cool!

  3. We REALLY need PII/4 emulation for the inbetwen era of software not just games. Everyone thinks of just FPS games and all that but I have loads of childhood ISO’s that quite a few are too new for early 98 and too old for Windows 7. Also again software not just games is what made the computer era shine because it was something for the common man. Not this stripped down app nonsense that is more about controlling you.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.