Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. MartyPC

MartyPC

MITRust0.4.1

A cross-platform, cycle-accurate IBM PC/XT emulator written in Rust, designed for retro PC development and debugging.

GitHubGitHub
828 stars38 forks0 contributors

What is MartyPC?

MartyPC is a cross-platform emulator written in Rust that accurately emulates early 8088-based PCs like the IBM PC, XT, PCJr, and Tandy 1000. It provides a highly accurate, cycle-by-cycle emulation environment specifically designed to aid in retro PC software development and to run demanding demos. The project prioritizes accuracy and developer tooling, offering extensive debugging features over user-friendliness.

Target Audience

Retro PC developers and enthusiasts who need a cycle-accurate emulation environment for writing, testing, and debugging software for early IBM-compatible systems. It is also valuable for demo scene creators pushing the limits of these old systems.

Value Proposition

Developers choose MartyPC for its hardware-validated, cycle-accurate 8088 CPU emulation and comprehensive debugging tools, which are essential for precise retro development. Its unique selling point is the ability to run notoriously demanding demos like 8088 MPH and Area 5150 with high accuracy, supported by a WebAssembly build for browser-based execution.

Overview

An IBM PC/XT emulator written in Rust.

Use Cases

Best For

  • Developing and debugging software for Intel 8088-based systems like the IBM PC and XT with cycle-level precision.
  • Running and testing demanding retro PC demos such as 8088 MPH and Area 5150 in an accurate emulated environment.
  • Hardware research and validation of early PC peripheral timings and behaviors using emulation.
  • Educational purposes for understanding the inner workings of early PC architecture and instruction execution.
  • Cross-platform retro PC emulation on Windows, Linux, macOS, or directly in a web browser via WebAssembly.
  • Experimenting with custom machine configurations and hardware extensions for vintage PC systems.

Not Ideal For

  • Casual gamers seeking plug-and-play retro gaming without configuration hassle
  • Projects requiring emulation of 80286 or later CPUs for running Windows 95 or newer software
  • Users who prefer graphical setup wizards over editing configuration files
  • Teams needing fully stable and complete peripheral emulation for all supported systems out-of-the-box

Pros & Cons

Pros

Hardware-Validated Cycle Accuracy

The 8088 CPU emulation is validated against real hardware using an Arduino, achieving 99.9997% cycle-accuracy on the 8088 V2 Test Suite, crucial for precise retro development and demo execution.

Extensive Debugging Tools

Features a debugging GUI with disassembly, memory viewer, breakpoints, and cycle logging, providing deep visibility into code execution for developers, as highlighted in the README.

Cross-Platform and Web Support

Runs on Windows, Linux, macOS, and includes a WebAssembly build that allows running demos like 8088 MPH directly in web browsers, enhancing accessibility.

High Accuracy for Demos

Capable of running cycle-critical demos such as 8088 MPH and Area 5150 with high accuracy, a feat emphasized in the README as unique among emulators.

Cons

Incomplete Peripheral Emulation

The README admits several devices are not fully implemented, such as the 8259 PIC missing advanced features, DMA transfers being 'faked', and parallel port functionality being minimal.

Complex Configuration Setup

Prioritizes accuracy over user-friendliness, requiring manual editing of configuration files rather than offering a graphical interface, which can deter newcomers.

Performance Intensive

Emulation of devices like the Adlib sound card is noted as CPU-heavy in the README, necessitating a fast host computer for smooth operation.

Unstable Early Support

Preliminary support for systems like the IBM PCjr and Tandy 1000 is described as 'buggy and unstable' in the README, limiting reliability for those platforms.

Frequently Asked Questions

Quick Stats

Stars828
Forks38
Contributors0
Open Issues24
Last commit18 days ago
CreatedSince 2022

Tags

#ibm#debugging-tools#webassembly#retro-computing#hardware-emulation#emulation#emulator#rust#x86#cycle-accurate

Built With

W
WebAssembly
R
Rust

Included in

Rust56.6k
Auto-fetched 1 day ago

Related Projects

RuffleRuffle

A Flash Player emulator written in Rust

Stars18,074
Forks1,026
Last commit1 day ago
touchHLEtouchHLE

High-level emulator for iPhone OS apps. This repo is used for issues, releases and CI. Submit patches at: https://review.gerrithub.io/admin/repos/touchHLE/touchHLE

Stars3,703
Forks235
Last commit2 days ago
gameboygameboy

Full featured Cross-platform GameBoy emulator by Rust. Forever boys!.

Stars1,423
Forks84
Last commit3 days ago
gopher64gopher64

Highly compatible N64 emulator

Stars1,053
Forks25
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub