Pentium II at 600Mhz with Voodoo 3 Emulated on 86Box with M6 Mac Mini
Pentium II at 600Mhz with Voodoo 3 Emulated on 86Box with M6 Mac Mini
在 M6 Mac Mini 上通过 86Box 模拟运行 600MHz Pentium II 与 Voodoo 3
Why 86Box Cares About One Core
为什么 86Box 如此看重单核性能
86Box emulates an old PC at the hardware level. CPU timing, chipset behaviour, ISA and PCI buses, graphics chipsets, sound devices, and disk controllers all matter to getting period software to behave properly. That does not guarantee identical performance to the original hardware, as the Cinebench results below illustrate. Frankly the project is fascinating and the effort has me in awe, but that accuracy is expensive, and almost all of the cost lands on a single host thread. The practical consequence is quite straightforward in that core count barely matters here. What really matters is how fast one core can run, and how long it can hold that speed without throttling. Luckily for the Mac Mini here that’s exactly where Apple Silicon has been strongest, and where the M6 shines.
86Box 在硬件层面模拟旧式 PC。CPU 时序、芯片组行为、ISA 和 PCI 总线、图形芯片组、音频设备以及磁盘控制器,对于确保旧时代软件正常运行至关重要。正如以下的 Cinebench 测试结果所示,这并不能保证与原始硬件完全相同的性能。坦率地说,这个项目非常迷人,其付出的努力令我惊叹,但这种精确度代价高昂,且几乎所有的计算成本都落在宿主机的单个线程上。实际结果很直接:在这里,核心数量几乎无关紧要。真正重要的是单核运行速度有多快,以及它能在不降频的情况下保持该速度多久。幸运的是,对于 Mac Mini 而言,这正是 Apple Silicon 最强的地方,也是 M6 大放异彩之处。
A little overclock… the M6 running a 650MHz Pentium II in my custom 86Box 6.0 build, with Cinebench 2000 and Winamp. One or two audio underruns kept 650MHz from passing, so 600MHz remains the stable result.
稍微超个频……在我的定制版 86Box 6.0 中,M6 运行着 650MHz 的 Pentium II,同时运行 Cinebench 2000 和 Winamp。由于出现了一两次音频欠载(underrun),650MHz 未能通过测试,因此 600MHz 依然是稳定的结果。
The Machines
测试设备
Every 86Box test uses the same machine configurations, the same disk images and emulated hardware. The comparison set is:
- Mac Mini M6 (12-core CPU, 24GB, this review unit)
- Mac Mini M4 (base 10-core CPU, 16GB)
所有的 86Box 测试均使用相同的机器配置、磁盘镜像和模拟硬件。对比组包括:
- Mac Mini M6(12 核 CPU,24GB,即本次评测机型)
- Mac Mini M4(基础版 10 核 CPU,16GB)
Testing was using a slightly modified build of 86Box 6.0, released on May 31, 2026. The team improved CPU emulation performance on ARM hosts and added an ARM64 just-in-time recompiler for Voodoo graphics. That second change is particularly relevant here, since the Windows 98 machine is running an emulated Voodoo 3. Some credit certainly belongs to the software, Apple Silicon has fast cores, but 86Box is also getting better at using them. I have not measured the uplift from an older 86Box version, given this is a review of the M6 and not 86Box.
测试使用的是 2026 年 5 月 31 日发布的 86Box 6.0 的微调版本。开发团队改进了 ARM 宿主机上的 CPU 模拟性能,并为 Voodoo 图形添加了 ARM64 即时(JIT)重编译器。第二个改进在此处尤为重要,因为这台 Windows 98 机器运行的是模拟的 Voodoo 3。部分功劳当然归功于软件,Apple Silicon 拥有快速的核心,但 86Box 在利用这些核心方面也做得越来越好。由于这是对 M6 而非 86Box 的评测,我没有测量相比旧版 86Box 的性能提升。
Why 100% Is the Only Acceptable Number
为什么 100% 是唯一可接受的指标
86Box reports an effective emulation speed as a percentage of its target speed. 100% means the host is keeping pace with the emulator’s timing model, so anything less is a genuine problem. It does not guarantee that a benchmark will score exactly as it would on a physical CPU at the same clock. Consistency also matters more than the average here. Even brief dips produce audible artefacts because sound hardware is fed in real time and starved buffers are heard as brief dropouts which are irritating. Basically any 86box setup that regularly dips below 100% will not feel right, and having adequate headroom on the system to comfortably emulate the target speed will be a much more stable experience. The result is that turns each host machine into a ceiling rather than a score, and for any given emulated configuration there is a maximum CPU clock the host can sustain at a flat 100%. Because almost all of that work falls on one thread, single-threaded performance moves this ceiling substantially, which is the whole reason the M6 is interesting for this.
86Box 将有效模拟速度报告为目标速度的百分比。100% 意味着宿主机能够跟上模拟器的时序模型,因此低于此数值就是真正的问题。这并不保证基准测试的分数会与相同频率的物理 CPU 完全一致。在这里,一致性比平均值更重要。即使是短暂的波动也会产生可听见的伪影,因为音频硬件是实时供电的,缓冲区不足会导致短暂的音频中断,这非常令人烦躁。基本上,任何经常低于 100% 的 86Box 设置都不会有良好的体验,而拥有足够的系统余量来舒适地模拟目标速度,体验会稳定得多。结果是,每台宿主机都有一个“性能上限”而非单纯的分数,对于任何给定的模拟配置,宿主机能保持稳定 100% 运行的 CPU 时钟频率都有一个最大值。由于几乎所有的工作都落在单个线程上,单线程性能会显著提升这个上限,这也是 M6 在此测试中引人注目的原因。
Test Method
测试方法
To find the ceiling, I made a custom build from the same commit as the 6.0 release (build 9001), extending the frequency tables in 50MHz steps up to 800MHz. The Deschutes frequency table patch is available if you want to try it yourself against that tagged release. It adds 500–800MHz entries with memory and cache timings scaled to retain approximately the same access latencies, and keeps the AT bus at 8.33MHz. The emulation code is otherwise unchanged. Both Macs used this build for the extended tests.
为了找到上限,我基于 6.0 版本(构建号 9001)的相同提交制作了一个自定义版本,将频率表以 50MHz 为步长扩展至 800MHz。如果你想在那个标记版本上亲自尝试,可以使用 Deschutes 频率表补丁。它增加了 500–800MHz 的条目,并对内存和缓存时序进行了缩放,以保持大致相同的访问延迟,同时将 AT 总线保持在 8.33MHz。除此以外,模拟代码未做更改。两台 Mac 都使用了此版本进行扩展测试。
Some might argue a Pentium II at these speeds is not era appropriate. I argue it is just a little overclock! The emulated machine is otherwise fixed across every run:
- Slot 1 motherboard with Pentium II (Deschutes), clock varied per run
- 256MB of memory
- Voodoo 3 emulated VGA with 16MB of video memory (2 threads)
- Windows 98 SE
有些人可能会争辩说,这些频率下的 Pentium II 不符合时代特征。我认为这只是稍微超了个频!除此之外,模拟机器在每次运行中都是固定的:
- Slot 1 主板搭配 Pentium II (Deschutes),每次运行频率不同
- 256MB 内存
- Voodoo 3 模拟 VGA,配备 16MB 显存(2 线程)
- Windows 98 SE
The load is deliberately a little awkward, Cinebench 2000 running its CPU test while Winamp 2.76 plays a 16-bit 44,100Hz PCM WAV in the background. The audio is a bit of an anchor as it’s a real-time consumer of the emulated hardware, so any moment it falls behind is immediately audible. The pass condition is ultimately subjective but strict. If I hear a dropout, or the reported emulation speed falls below 100% at any point, the run fails.
负载被特意设置得有些棘手:Cinebench 2000 运行 CPU 测试的同时,Winamp 2.76 在后台播放 16-bit 44,100Hz 的 PCM WAV 文件。音频是一个“锚点”,因为它实时消耗模拟硬件资源,所以任何滞后的瞬间都能立即被听到。通过条件最终是主观但严格的:如果我听到音频中断,或者报告的模拟速度在任何时刻低于 100%,则测试失败。
Results
测试结果
The base M4 Mac Mini holds 500MHz, with both Macs extremely stable throughout the full Cinebench 2000 and 3DMark 2000 SE runs at that speed. At 550MHz, the M4 starts to hitch. They are slight interruptions in Cinebench, but more noticeable during the 3DMark demo, and enough to fail the run. The M6 passes 550MHz and 600MHz, which is incredible. At 600MHz it held a flat 100% through both Cinebench 2000 runs and the 3DMark 2000 SE demo, the latter giving it 7–8 minutes of uninterrupted testing. That makes the highest passing clock 20% higher than the M4’s in this setup.
基础版 M4 Mac Mini 可以稳定在 500MHz,两台 Mac 在此频率下运行完整的 Cinebench 2000 和 3DMark 2000 SE 时都非常稳定。在 550MHz 时,M4 开始出现卡顿。在 Cinebench 中表现为轻微中断,但在 3DMark 演示中更为明显,足以导致测试失败。M6 通过了 550MHz 和 600MHz 的测试,这令人难以置信。在 600MHz 下,它在两次 Cinebench 2000 运行和 3DMark 2000 SE 演示中都保持了平稳的 100%,后者提供了 7-8 分钟的不间断测试。这使得在此配置下,最高通过频率比 M4 高出 20%。
(Table omitted for brevity, please refer to original article for data)
(表格从略,数据请参考原文)
Those scores describe the emulated CPU at each clock. A completed render is not enough to pass, the 10.08 CB result at 650MHz came with one or two audible underruns. In reality, I think I may be being too firm on that run, and background activity could have caused the hitches. But staying true to the methodology, 600MHz is the result and leaves a lick of headroom. The 800MHz option is there to extend the test range but clearly not a speed either Mac can sustain.
这些分数描述了每个时钟频率下的模拟 CPU。完成渲染并不足以通过测试,650MHz 下 10.08 CB 的结果伴随着一两次可听见的音频欠载。实际上,我觉得我对那次运行可能过于严苛了,后台活动可能导致了卡顿。但为了坚持方法论,600MHz 是最终结果,并留有少许余量。800MHz 的选项是为了扩展测试范围,但显然不是任何一台 Mac 都能维持的速度。