Mac Mini M6:86BoxでレトロPCエミュレーション(600MHz PII?!)

86Box で古い PC を動かすときは単一コアの性能が効く。M6 Mac Mini で Pentium II 600MHz と Voodoo 3 を動かした記録と、その速度の測り方。

日本語
コピー
Mac Mini M6: Retro PC Emulation with 86Box (600MHz PII?!) 的题图

86Box がシングルコア性能を気にする理由

86Box はハードウェアレベルで古い PC をエミュレートする。CPU のタイミング、チップセットの挙動、ISA と PCI バス、グラフィックスチップセット、サウンドデバイス、ディスクコントローラ——そのすべてが、当時のソフトウェアが正しく動くかどうかに関わってくる。とはいえ、実機と同じ性能が出る保証はない。以下の Cinebench のスコアがそれを示している。正直に言えば、このプロジェクトは面白いし、その取り組みには頭が下がる。だが、この正確さには代償が伴い、その代償はほぼすべてホストマシンの単一スレッドにのしかかる。

実際の帰結は明快だ。コア数はここではほとんど意味を持たない。効いてくるのは、シングルコアがどれだけ速く回るか、そしてクロックを落とさずにそれをどれだけ維持できるかだ。この Mac Mini にとって、それはまさに Apple Silicon がずっと最も得意としてきた領域であり、M6 が輝く領域でもある。

ちょっとだけオーバークロック……M6 上で自作ビルドの 86Box 6.0 を動かし、650MHz Pentium II で Cinebench 2000 と Winamp を同時に走らせたところ。音声が一、二度途切れ、650MHz は通らなかった。つまり 600MHz が依然として安定して出る結果だ。

ちょっとだけオーバークロック……M6 上で自作ビルドの 86Box 6.0 を動かし、650MHz Pentium II で Cinebench 2000 と Winamp を同時に走らせたところ。音声が一、二度途切れ、650MHz は通らなかった。つまり 600MHz が依然として安定して出る結果だ。

テストマシン

86Box のテストは毎回、同じマシン構成、同じディスクイメージ、同じエミュレートハードウェアで行った。比較対象は次の 2 台だ。

  • Mac Mini M6(12 コア CPU、24GB、今回のレビュー機)
  • Mac Mini M4(ベースモデルの 10 コア CPU、16GB)

テストには、わずかに手を加えた 86Box 6.0 のビルドを使った。2026 年 5 月 31 日リリースのものだ。チームは ARM ホスト上での CPU エミュレーション性能を引き上げ、Voodoo グラフィックス向けに ARM64 の JIT を追加した。2 つ目の変更はここでは特に関係が深い。Windows 98 のマシンがエミュレートされた Voodoo 3 で動いているからだ。もちろん、その功績の一部はソフトウェア側にある。Apple Silicon のコアは速いが、86Box もそれをうまく使いこなせるようになってきている。

旧版の 86Box からこのバージョンまでの向上幅は測っていない。何しろこれは M6 のレビューであって、86Box のレビューではない。

なぜ 100% だけが許容できる数字なのか

86Box は実際のエミュレーション速度を、目標速度に対するパーセンテージで報告する。100% は、ホストがエミュレータのタイミングモデルに追いついていることを意味する。つまりこれを下回るのは、本当に問題があるということだ。ただし、ベンチマークのスコアが同じクロックの物理 CPU と完全に一致する保証はない。

ここでは平均値よりも安定性のほうが大事だ。一瞬でも速度が落ちれば、聞き取れるノイズが出る。オーディオハードウェアはリアルタイムでデータを食っており、バッファが枯渇すれば短いプチノイズになって、耳障りこの上ない。要するに、100% を頻繁に下回る 86Box 構成はどれもまともに使えたものではないし、システムに十分な余裕があって目標速度を楽にエミュレートできるほうが、はるかに安定した体験になる。

結果として、各ホストが示すのはスコアではなく上限だ。どんなエミュレート構成に対しても、ホストが 100% を安定して維持できる最高の CPU 周波数が存在する。この作業はほぼすべて単一スレッドに乗るので、シングルスレッド性能がこの上限を大きく押し上げる。だからこそ M6 がここで注目に値する。

テスト方法

この上限を探るため、6.0 リリースと同じ commit(build 9001)でカスタムビルドを作り、周波数テーブルを50MHz 刻みで 800MHz まで拡張した。あのタグ付きリリースで自分で試したい人向けに、Deschutes 周波数テーブルのパッチを用意してある。500〜800MHz のエントリを追加し、メモリとキャッシュのタイミングを比例スケールしてアクセスレイテンシをほぼ同じに保ちつつ、AT バスは 8.33MHz に維持する。それ以外はエミュレーションコードに手を入れていない。拡張テストでは両方の Mac がこのビルドを使った。

この速度の Pentium II は時代錯誤だと言う人もいるだろう。俺の意見はこうだ——ちょっとオーバークロックしただけじゃないか!

それ以外では、エミュレートするマシンは毎回固定だ。

  • Slot 1 マザーボード、Pentium II(Deschutes)搭載、周波数は実行ごとに変更
  • 256MB メモリ
  • Voodoo 3 エミュレート VGA、16MB ビデオメモリ(2 スレッド)
  • Windows 98 SE

Pentium II マシンをエミュレートするための 86Box CPU 設定

Pentium II マシンをエミュレートするための 86Box CPU 設定

この負荷はわざと少し厄介にしてある。Cinebench 2000 で CPU テストを走らせながら、裏で Winamp 2.76 が 16-bit 44,100Hz の PCM WAV を再生する。オーディオはアンカーになる。リアルタイムでエミュレートハードウェアのリソースを食うので、追いつけなくなれば即座に耳でわかるからだ。

合格基準は結局のところ主観だが、厳しめに設定している。一度でも音が途切れたら、あるいはエミュレーション速度がどの時点でも100%を下回ったら、その実行は失敗とみなす。

結果

基本構成では M4 Mac Mini は500MHzで安定する。両方のMacがこの速度でCinebench 2000と3DMark 2000 SEを最後まで走り切っても、極めて安定していた。550MHzになるとM4は引っかかり始める。Cinebenchでは軽微な中断で済むが、3DMarkのデモではより顕著で、失敗と判定するに十分だった。

M6は550MHzと600MHzを通過した。これはかなり驚きだ。600MHzでは、Cinebench 2000を2周と3DMark 2000 SEのデモを最後まで、終始100%の速度で安定して走り切った。後者では7〜8分間ノンストップのテストになった。つまりこの構成では、最高通過周波数がM4より20%高い。

CB2000のスコア、気になる人向けに:

エミュレートしたPentium II周波数別のCinebench 2000

エミュレート周波数Cinebench 2000M6M4
300MHz4.62 CB通過通過
350MHz5.34 CB通過通過
400MHz6.16 CB通過通過
450MHz7.02 CB通過通過
500MHz7.73 CB通過通過
550MHz8.54 CB通過失敗
600MHz9.28 CB通過失敗
650MHz10.08 CB失敗失敗

カスタム86Box 6.0ビルドで各周波数を1回ずつ実行。通過にはエミュレーション速度が終始100%で安定していること、そして耳で聞き取れる音の途切れがないことが条件。ホバーで結果の詳細を表示。

これらのスコアは各周波数でのエミュレートCPUの性能を表している。レンダリングが完了しただけでは通過にならない。650MHzでの10.08 CBという結果には、聞き取れるアンダーランが1、2回伴っていた。正直なところ、あの実行には自分でも厳しすぎたかもしれないし、バックグラウンドの活動が引っかかりの原因だった可能性もある。だが方法論に忠実に従えば、600MHzが結果であり、まだ少し余裕もある。800MHzの選択肢はテスト範囲を広げるために入れたが、両方のMacがこの速度を維持できないのは明らかだ。

これらのスコアを実機と比べると、興味深い細部がある。Cinebench 2000のスコアを集めたArs Technicaのフォーラムスレッドには、こんなユーザー報告のデータがある:

当時のハードウェア、ユーザー報告のCinebench 2000スコア

当時のハードウェアCinebench 2000
Pentium II 300MHz2.38
Pentium II 450MHz4.35
Celeron 800MHz7.52
Celeron 533MHzを760MHzにOC(95 x 8)8.03
Pentium III Coppermine 800MHz9.25
Athlon Classic 600MHz7.66

データはArs TechnicaのCinebench 2000スレッドにおけるユーザー報告のスコア。システム、メモリ、OSはそれぞれ異なるので、当時の背景としての参考にすぎず、制御された比較ではない。

我々のエミュレートした450MHz Pentium IIは7.02 CBで、あの実機PII 450MHzの結果より約61%高い。300MHzでは差はさらに開き、4.62 CB対2.38 CB。妙なことに、我々の600MHzの9.28 CBは、あの800MHz Coppermineとほぼぴったり並ぶ。これらは異なるシステム上のフォーラムへの個人投稿にすぎず、当時の背景を与えるだけで、制御された比較ではない。それでも差は小さくない。もう一つ言及しておくと、このバージョンのベンチマークは非常に古く、今日のような人気テストになるはるか前のものだ。

原因はまだわからない。エミュレート機内のメモリ帯域幅とキャッシュタイミングに関係しているのかもしれない。86Boxのv3.0リリースノートには関連する経緯があり、P6エミュレーションが正確でないのは、アウトオブオーダー実行とL2キャッシュの挙動が複雑すぎるためだと説明している。Deschutesのタイミングは、できるだけ実機に近づくよう調整されている。とはいえ正直なところ、自分でも確信はない。

この差は300MHzと450MHzの時点ですでにあり、どちらも私のパッチが新たに加えた段より低い。今回のレビューに関しては、600MHzがこの86Box構成でテストを通過する最高段であり、安定周波数はM4より20%高い。CB2000のスコアはこの構成が周波数にどうスケールするかを示す助けにはなるが、実機のPentium IIやPentium IIIでソフトウェア間の性能が同等だと主張するために使うつもりはない。

M4の500MHzでさえ、参照として使ったオーバークロックした9950X3Dのデモと並べるとかなりのものだ。このカスタムマシンで比較できるx86の実行データは持っていないが、ベースモデルのM4はすでにはるかに強力なレトロマシンであり、最初の450MHzという上限で確認できた水準をはるかに超えている。

以下の動画は、以前 M6 上で行った 450MHz のテストを収めたものだ。当時 OBS は 720p30 H.264 の合成とエンコードも同時にこなしていた。これはその実行を記録したものであり、新しい 600MHz の結果ではない。

3DMark 2000 SE を Mac Mini M6 上の 86Box で実行し、450MHz Pentium II と Voodoo 3 をエミュレート。OBS がキャプチャ映像をエンコードする間も、エミュレーション速度は 100% で安定していた。

ホスト側で実際に起きていること

86Box は処理を 2 つの「スーパー」コア、cpu6 と cpu7 に集中させ、パッケージ内の残りはほぼ遊んでいる。M6 では、450MHz の Cinebench 2000 実行中にこの 2 コアが平均約 4,483MHz、600MHz 実行時は約 4,710MHz、ピークは 4,788MHz に達した。コア活動率もエミュレーション周波数とともに上がり、ビジーなコアあたり 450MHz 時の約 41% から 600MHz 時は 45% から 49% へと増える。つまり、テストを通過した最高周波数でもまだ余裕は実質的に残っている。パッケージ全体の使用率が 26% を超えることはなかった。

同じ構成で、M4 のビジーコアは 3.7GHz に近く、この差がおそらく 500MHz で頭打ちになった主な理由だろう。

86Box:Pentium II ホストのテレメトリ

powermetrics で約 1 秒間隔で取得。cpu6 と cpu7 は 86Box が使用している性能コア。この M6 リビジョンでは CPU パッケージ電力がゼロと報告されるため、M6 は周波数と使用率のみをプロットしている。

Mini にとってこれが意味するもの

この特定の用途に限れば、最も安い新しい Mac デスクトップは異常に優れたマシンだ。ベースモデルの M4 ですでに安定した 500MHz Pentium II が出ており、M6 はそれを 600MHz まで押し上げ、音声も完全、3DMark のデモは終始 100% だった。€1,600 未満の小さく静かなマシンとしては、かなり出色の結果である。私が今までに見つけた事例の中では、これが最も明快な例だ。M6 のシングルコアの優位が、単なるグラフ上の数字ではなく、実際に体感できるものに変わっている。

ベンチマークのデータと、当時の実測に関するネット上の報告を見る限り、私の仮想システムの水準はおおよそ Pentium III のクラスに収まっている。時間ができたら、86box で XP のエミュレーションも試してみたい。

消費電力と熱は、powermetrics が M6 の CPU パッケージ電力を報告するようになってから。また今度。 ゲームベンチマークは『サイバーパンク 2077』をネイティブ 1080p で。12 コア GPU に処理が移った後の挙動を見る。

出典: nyaa.sh← ホームへ戻る