MartyPC:99.9997% 周期精确度的开源 IBM PC 模拟器,硬核复古开发利器
MartyPC 是一款面向早期 IBM PC 及兼容机的逐周期模拟器,重点支持 Intel 8088 微架构的逐周期执行观察,准确率达 99.9997%。适合复古 PC 程序开发、调试和硬件时序研究,支持跨平台与浏览器运行。
作者:核流编辑 · 栏目:资源
在复古计算与古董硬件研究领域,许多早期的软硬件行为严重依赖于特定 CPU 的时钟周期与总线竞争,常规模拟器往往无法做到毫秒不差的真实还原。开源项目 MartyPC 正是为解决这一终极精度问题而打造:它是一款面向早期 IBM PC/XT 及其兼容机的逐周期(Cycle-Accurate)模拟器,能够在时钟周期级别完整复现 Intel 8088 的底层执行逻辑,为复古程序编写、时序调试以及 Demo 行为复现提供了极高精度的虚拟测试床。 99.9997% 周期准确率,把 8088 指令队列拆解到每个时钟 与许多只关注指令逻辑结果的功能性模拟器不同,MartyPC 将处理器的硬件微架构细节推向了舞台中央。模拟器不仅精确实现了 8088 的异步总线接口单元(BIU),还将处理器指令预取队列与总线周期的争用逻辑完全建模。开发者可以在界面中逐周期追踪指令的抓取、译码与执行细节,彻底看清程序在物理总线上的每一次脉冲响应。 这种极致的精度经过了严苛的硬件对照验证。在 2024 年更新的 8088 V2 权威测试套件中,MartyPC 成功通过了包含预取队列在内的全套测试,实测时钟周期准确率高达惊人的 99.9997%。此外,项目还内置了极其强悍的底层调试套件,包括交互式反汇编器、CPU 寄存器状态监视器、内存查看器、断点系统,以及细化到指令级和周期级的完整日志追踪,让上世纪八十年代的代码行为彻底透明。 丰富外设与多显卡支持,已知短板与调试边界一览 在整机外设模拟方面,MartyPC 同样展现出了极高的完成度,原生支持双显卡与多显示器输出配置。它涵盖了从 CGA、EGA、MDA/Hercules 到部分 VGA 模式的图形输出,支持 8255 PPI、8259 PIC、8253 PIT 等核心外围芯片,以及 PC 喇叭与 Adlib 声卡音频模拟。不过,作者在文档中也坦诚指出了当前版本的限制边界: 部分外设仍属初步模拟:NEC V20 处理器虽按周期运行,但尚未做到完全独立的时序准确(底层仍基于 8088 时序);8259 中断控制器尚缺少优先级轮转等高级特性;XT-IDE 处于早期阶段且未实现全套 ATA 指令; 性能与准确度权衡:软盘控制器的物理时序仍在打磨中,而高精度的 Adlib 模拟对现代宿主机 CPU 消耗较高,建议在性能较强的机器上运行。 对于想要体验早期 PC 架构魅力的开发者而言,获取方式十分便捷:Windows 用户可直接从 GitHub 官方仓库下载预编译的正式发布包,或从 Actions 持续集成页面获取最新的自动化构建构件;如果只想快速查看效果,项目甚至提供了开箱即用的浏览器在线试用入口。而 Linux 与 macOS 开发者则可依照项目 Wiki 指南从源码快速编译。如果你正投身于 DOS 时代的汇编逆向或复古硬件研究,MartyPC 绝对是一把不可多得的显微镜。 参考资料 GitHub:MartyPC – A Cycle-Accurate IBM PC/XT Emulator