hn.today

MartyPC – A Cycle-Accurate IBM PC/XT Emulator

github.com12 points1 comments
Screenshot of MartyPC – A Cycle-Accurate IBM PC/XT Emulator

MartyPC is a cycle-accurate emulator of early IBM PCs and compatibles, implemented in Rust and runnable on Windows, Linux and macOS (with a browser demo available). It is designed as a development aid for retro PC programming, emphasizing precise timing, extensive logging and debugging rather than plug-and-play ease. Cycle-accuracy work began in late 2022 and was validated against a real Intel 8088 connected to an Arduino MEGA and other hardware probes; MartyPC passes the 8088 V2 Test Suite with 99.9997% cycle-accuracy. That fidelity enabled it to run demanding demos such as 8088MPH and to fully reproduce every effect in Area 5150.

Feature coverage is broad: a cycle-accurate Intel 8088, a preliminary NEC V20, and a wide set of peripherals (8255 PPI, 8259 PIC, highly accurate 8253 PIT, partially implemented 8237 DMAC, 8250 UART, game/parallel ports). Video emulation includes a dynamic, cycle-or-character-clocked CGA (with composite output and overscan), MDA/Hercules, EGA and working VGA modes; PCjr/Tandy support is underway. Sound emulation covers PC speaker, Adlib (OPL2 via nuked-opl3), SN76489 and the Disney Sound Source. Storage emulation includes a μPD765 FDC, XT-IDE and other controllers with flux-image support. Additional capabilities include dual-head displays, configurable machine overlays, memory expansion cards, many input device models and an extensive GUI debugger for disassembly, CPU state and memory inspection.

Read on github.com1 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Hardware

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.