打开一个网址,选一台机器,点启动——不用装任何软件,浏览器窗口就变成了一台1981年的IBM PC。这是MartyPC Web Edition想做的事。但真正有意思的不是"又出了个模拟器",而是它背后藏着一个近乎偏执的数字:8088处理器的周期精确度做到了99.9997%。这个数字比"能不能愉快玩老游戏"重要得多,因为MartyPC压根没打算讨好想玩游戏的人。
一个网页,三台老电脑
页面给出三个选项:IBM PC 5150(1981)、IBM PCjr、Tandy 1000,可以搭配视频卡、内存Sidecar、AdLib声卡。MartyPC本体用Rust写成,Windows、Linux、macOS、WebAssembly全平台通吃,源码开源在GitHub。
官方README把5150、5160、通用XT兼容机标为"完整支持",PCjr和Tandy 1000只标"初步支持",明确提示可能有bug。这个区分很重要,后面会再提到。
为什么0.0003%的误差都不能有
复古PC模拟器这个圈子长期是DOSBox-X、86Box、PCem三分天下。DOSBox-X官方文档写得很直白:它的"cycles"设置只是指令执行预算,不是真实时钟周期,追求的是流畅玩游戏,不是精确复现硬件。86Box和PCem走硬件级路线,加载真实BIOS,但即便如此,86Box文档也承认它的动态重编译器是"更快但精度更低"的权衡选项。
MartyPC选的是另一条路:只做8088和PC-XT这一段历史,拿真实Intel 8088硬件做比对验证,在测试套件上跑到99.9997%的周期精确度。这个精确度换来什么?8088MPH、Area 5150这类demoscene作品,靠的就是总线时序和指令预取队列里的漏洞做出常人以为8088不可能画出的画面。时序差一点,特效就花屏甚至黑屏。普通模拟器图省事绕不开这道坎,周期精确的模拟器才接得住。
古人说"失之毫厘,谬以千里",放在这里恰好贴切——99.9997%和100%看着只差个零头,在demoscene作品面前就是能跑和直接崩掉的区别。
浏览器版本能打几分
最新正式版v0.4.1发布于2025年5月31日,以bug修复为主,新增NEC V20 8080模拟的初步支持;更早的v0.4.0引入了原生/WASM双前端、VGA、XT-IDE、jr-IDE和更完整的音频。在VOGONS论坛的非正式测试里,Web Edition在Chrome新标签页跑Area 5150能稳定到60FPS,估计比原生版本慢两成左右,M1到M3的Apple Silicon设备表现不错。
坑也不少。GitHub讨论区记录过一次wgpu图形后端引发的性能回归,在较旧的ThinkPad上性能直接腰斩,临时办法是手动设置WGPU_BACKEND=gl环境变量。Mozilla Bugzilla还有一份报告:早期版本在Windows版Firefox上运行迟缓、音频尤其卡,同期Edge却很流畅;后来在M1 Mac的Firefox上测试,性能已经接近Chrome了。
- 风险.多渠道版本号还没对齐——GitHub发布页最新是0.4.1,Reddit公告在讲即将上线的0.4.2(新增真实录制的软驱声效和浏览器内文件传输),网站本身检索到的标注却是0.4.0。这更像一个还在快速迭代、发布节奏没完全理顺的项目,而不是一个成熟产品。
精度不是免费的,选错工具白折腾
把MartyPC放进坐标系里看会更清楚:它不是要取代86Box或DOSBox-X,而是主动收窄了战场。86Box覆盖从8088到奔腾时代的多种主板,追求跨时代的广度;DOSBox-X放弃周期精确,换来的是开箱即用、老游戏能跑就行;MartyPC只死磕8088和PC-XT这一段,但在这个窄口里做到了目前检索资料能看到的最高精确度。
对读者的实用判断很直接:研究老硬件时序、做demoscene移植、或者纯粹好奇8088到底能不能骗出这些画面特效的,MartyPC值得一试。只想找个网页随手玩几把老DOS游戏的,DOSBox-X省心得多。想要一台模拟器覆盖从XT到奔腾的整条时间线,86Box更合适。
- 结论.MartyPC的"周期精确"招牌主要立在8088核心和CGA显示上,PCjr、Tandy 1000的DMA、并口、软驱行为仍标注"初步支持",别把营销话术当成全平台均质的事实。
把精度做到极致,把方便让给别人。
这大概是MartyPC真正聪明的地方。复古模拟器这条赛道挤了十几年,精度、易用、覆盖面从来没人能三者兼得,与其硬拼一统天下,不如把一个最难啃的骨头啃透。demoscene开发者和数字考古研究者会记住这个项目,普通玩家大概率还是会转回DOSBox-X——这不是失败,这是分工。接下来值得盯的是v0.4.2能不能把版本号理顺,PCjr和Tandy 1000什么时候从"初步支持"转正。
