- Mac mini G4でSystem 7およびMac OS 8をネイティブ起動に成功。従来はMac OS 9.2.2までしか起動できなかった制約を超える事例になった
- CHRP(共通ハードウェア参照プラットフォーム)ベースの流出したMac OS 7.6~8.0ビルドとSystem Enablerパッチ、および**Mac OS ROM修正ツール(tbxi)**を組み合わせ、旧OSの起動を実現
- 開発者**Rairii(Wack0)**が複数のROMバージョンを分析・統合し、**古い機能と新しい機能をすべて含む「スーパーROM」**を作成してGitHubで公開
- テスト結果、System 7.5~8.1まで安定して起動可能だが、サウンド、ビデオ、ネットワークなど一部の機能は未完成の状態
- この成果は、New World ROMベースのPowerPC Mac全体で古いMac OSの実行可能性を拡張し、レトロ開発および保存コミュニティに大きな意義を持つ
CHRPアーキテクチャとSystem 7起動の背景
- Mac mini G4はNew World ROM構造を使用していたため、既存のSystem 7系OSを直接起動できなかった
- New World ROMは実機ROMの代わりにMac OS ROMファイルを必要とする
- System 7.6以前のバージョンはこの構造を認識できず起動不可だった
- **CHRP(Common Hardware Reference Platform)**はPowerPCベースの共通アーキテクチャで、Mac OS 7.6~8.0向けビルドが内部で開発されていたが、正式にはリリースされなかった
- 2025年10月、CHRP向けMac OSビルドが保存・公開され、新たな実験が可能になった
- CHRP向けのSystem Enablerファイルを修正し、OSバージョン制限を解除することでSystem 7.5.xなど旧バージョンでもMac OS ROMファイルを使用できるようにした
ROMパッチと起動実現の過程
- **Rairii(Wack0)はELNのMac OS ROMパッチツール(tbxi)**を用いて複数のROMバージョンを分析・統合
- 旧バージョンの機能を復元しつつ、新バージョンの機能も維持した統合ROMを作成
- これによりSystem 7.5~8.1まで起動可能
- GitHubリポジトリ(universal-tbxi-patchset)からROMとパッチ済みSystem Enablerをダウンロード可能
- サポートするROMバージョンは10.2.1、2.5.1、1.7.1の3種類で、Mac mini G4ではATA-6ドライバをサポートするために9.1以上のROMが必要
Mac mini G4での起動結果
- System 6.0.8~7.1.2: 起動失敗
- System 7.5 / 7.5.3 / 7.6 / 8.1: 起動および安定した実行
- 一部のコントロールパネル(例: Mouse Control Panel)を無効化する必要あり
- System 7.5.2: 起動するが不安定
- Mac OS 8.5~9.1: 起動失敗、デバイスID確認手順によりブロックされる
- Mac OS 9.2~9.2.2: 完全に正常稼働
- 一部機能(サウンド、ネットワーク、Apple System Profilerなど)は依然として不安定
Mac mini G4専用ROMの適用方法
- ELNのtbxiおよびtbxi-patchesツールを使い、macmini.pyスクリプトでRairiiのROM(10.2.1版)にMac mini G4専用パッチを適用
- Python 3.8.10環境で正常動作を確認
- 最終的にパッチ済みのROMはMac OS 9.2.2でも同様に動作し、System 7.5起動までサポート
- 既存のMac mini G4 ROM(v9.6.1)はG4 Cube用にモデルIDをスプーフィングしており、新しいROMも同様の方式を維持
古いOS実行の価値
- 一部のソフトウェアはMac OS 9.0.4以下またはSystem 7専用であり、最新OSでは実行不可
- System 7.5はMac OS 9よりはるかに軽量で、極端に高速な性能を提供
- 開発者と研究者は旧APIおよびシステム動作を直接実験できる
- このプロジェクトはPowerPC MacのクラシックOS実行範囲を拡大し、コミュニティの保存活動に貢献している
まとめと謝辞
- 今回の成果は、Rairii、ELN、Mac84などコミュニティ構成員の協力で完成した
- CHRPディスク保存、ROMツール開発、パッチ共有など多様な貢献が結びついた結果
- 今後、G3・G4 Macユーザーが各自のモデルに合わせたSystem 7~8.5カスタムブートイメージを作成できる可能性が開かれる
1件のコメント
Hacker Newsのコメント
私はレストアしたMac mini G4を販売する趣味のビジネスをしています
内部を完全に清掃し、128GB SSDにアップグレードし、RAMを1GBに増設し、新しい時計用バッテリーに交換しています
そして Mac OS 9 Lives コミュニティが作成したMac OS 9のハック版をプリインストールしています
私のサイト os9.shop で購入できます
顧客の大半は古いソフトウェアを動かす必要がある実際の業務ユーザーで、歯科医院、動物病院、博物館、自動車整備工場などさまざまです
2025年になってもなおClassic Macソフトウェアを使っている人が多いのは驚きです
以前、300MHzのG3 iMacにSSDを載せたことがありますが、起動時の初期化に時間がかかり、よくフリーズしました
Mac mini G4でSystem 7を「ネイティブ」で動かすと、ドライバがかなり不足しています
ほとんどのソフトウェアはOS 9.2.2のほうがうまく動きますし、本当に例外的なケースでは vMac のようなエミュレータで十分です
私もMac OS 9.2.2が最高のOSだと思います
昔、会社でHyperCardを使って素早くプロトタイプを作っていました
Cubeでも、そして最近のマシンではOS 9エミュレーションでもうまく動きます
HyperCardのスクリプターたちは、今日のほとんどのユーザーがやらないような素晴らしいことをしていました — 巨大なデータセンターなしで
リリース直前の週末に、HyperCardベースのRuntime Revolutionでセットアップウィザードを作り、月曜には完成品を持っていきました
会社は「我々はJavaでJavaツールを作る」という哲学のため怒っていましたが、結局そのバージョンは無事に出荷されました
今でも単純なツールをElectronやReactで作るのはTuring Tarpitのようだと思います
関連リンク: LiveCode (company)
シンプルで不要な抽象化がほとんどありません
最新のPython 3.13.9ではスクリプトが動かなかったので、Python 3.8.10で再試行したところ完璧に動きました
最近のPythonは古い機能を削除して既存コードを壊してしまうことがよくあります
関連イシュー: tbxi issue #1
MacOS 9は2002年以降公式サポートが終了しており、関連機能を標準ライブラリから削除するのは合理的です
ほとんどのユーザーはそうした機能をまったく使わないのですから
関連議論: cpython issue #83534
最初は「Mac mini M4」と読み間違えて驚きました
StarMaxシリーズ(特に4400)はCHRPに最も近いモデルでした
私のPowerCityクローンにはPS/2とISAポートがあり、BeOSもうまく動きました
ループが回るときにスピーカーから音が出るという独特な特徴もありました
PCスタイルのフロッピードライブをサポートし、PS/2はCudaLiteマイクロコントローラがADBデバイスに変換します
ISAスロット付きのバージョンは見たことがありませんが、PCI-ISAブリッジチップで実装できたはずです
参考資料: LPX-40 Dev Note
Motorola YellowknifeボードとIBM Long Trailシステムが似ています
どちらのシステムもW83C553 southbridgeとPC87307 Super I/Oコントローラを使用しています
NXPの回路図を見ると構造をより理解しやすいです
PowerPC Macの複雑な構造を学びたい人に聞きたいのですが — 特定モデルのハードウェアサポートはどこに実装されているのでしょうか?
実際のところ、これはSystem 7を「ネイティブ起動」しているわけではありません
PowerPC Macはすべてエミュレータを通してSystem 7を動かしています
それでもこの試み自体は印象的です
私は iMac G4 1.25GHz を使っています
もともとは1GHzモデルでしたが、後でボードを交換しました
OS XのクラシックモードではなくOS 9を直接起動できればずっと効率的なのですが、
1〜1.25GHzモデルでは公式にはサポートされていません
いつかデュアルブートできるようになることを夢見ています
内蔵スピーカーは使えませんが、ヘッドホンジャックは動作します
こういう内容は本当に素晴らしいです。Hacker Newsで見たい話題です
印象的ではありますが、初期のmacOSのUXはかなり不便でした
UIスレッドがすべてを担当していたからです
クリックしてから待つのが日常でした
アニメーションがほとんどなく、入力がブロックされなかったからです
よく使うアプリは手が覚えているとおり即座に反応しました
nullポインタひとつでシステム全体が止まりました