// HACKER NEWS — CYBERSECURITY
MartyPC – A Cycle-Accurate IBM PC/XT Emulator
MartyPC is an emulator of early IBM PCs and compatibles. It supports Windows, Linux and macOS.
Builds are available through periodic releases. Newer, automatic builds are available via the Actions tab under the Artifacts for each workflow run. (You will need to be logged in to GitHub to download Artifacts).
If you're not on Windows, or you want the latest bleeding-edge version, you'll need to build MartyPC from source.
See the Building MartyPC guide on the MartyPC Wiki for build instructions.
MartyPC began as a hobby project to see if I could write an emulator from scratch while learning the Rust programming language. My original goals for MartyPC were modest, but it has reached a level of functionality that I could have never imagined.
MartyPC's intended niche in the emulation world is an aide for retro PC development. It is packed with debugging tools and logging facilities, with many more planned. It may not be as user-friendly to set up as other emulators, but if you are familiar with editing configuration files you shouldn't have any major problems. Programmers writing software for the Intel 8088 can see and measure the exact cycle-by-cycle execution of their code.
Development of MartyPC started in April 2022. I began work on making MartyPC's 8088 CPU emulation cycle-accurate in
November 2022. To do so, I validated the operation of the CPU against a real 8088 CPU connected to an Arduino MEGA
microcontroller. See my Arduino8088 project for more details. This allows an instruction to be simultaneously executed on the emulator and a real CPU and the execution results compared, cycle-by-cycle. More info on this process is described on my blog.
In June 2024 I updated the 8088 test suite once again to support exercising of the 8088's prefetch queue. Many more cycle inaccuracies were found and corrected. MartyPC passes the 8088 V2 Test Suite with 99.9997% cycle-accuracy.
Extensive hardware research has been performed to improve MartyPC's peripheral emulation as well, including
investigating the 8253 timer chip with an Arduino, investigating DMA timings with an oscilloscope, and ultimately, building a bus sniffer using a logic analyzer.
In April 2023, MartyPC became accurate enough to run the infamous PC demo, 8088 MPH.