3 ポイント 投稿者 GN⁺ 2025-06-28 | 1件のコメント | WhatsAppで共有
  • Snow は、Motorola 680x0 ベースの Macintosh のハードウェア動作を可能な限り実機に近く再現するオープンソースのエミュレーター
  • グラフィカルユーザーインターフェース (GUI)強力なデバッグ機能 を提供
  • 既存のエミュレーターとは異なり、ROM パッチ やシステムコールのフックを最小限に抑える方式
  • Macintosh 128K/512K/Plus/SE/Classic/II モデルをサポート
  • Rust ベースで開発されており、さまざまな OS でビルドおよびダウンロード が可能

プロジェクト概要

  • Snow は クラシック Macintosh (680x0 系) コンピューターをソフトウェアで再現するエミュレーター
  • ユーザーは グラフィカルインターフェース を通じて、実際の Mac を操作するように利用できる
  • デバッグ機能 が豊富で、開発用途や解析に適している

動作方式と特徴

  • Snow は 可能な限りハードウェアレベル (ローレベル) での完全なエミュレーション を志向
    • これは ROM をパッチしたりシステムコールを迂回したりする一般的な方法ではなく、実機ハードウェアのように動作させるもの
  • 公式にサポートされるモデル:
    • Macintosh 128K
    • Macintosh 512K
    • Macintosh Plus
    • Macintosh SE
    • Macintosh Classic
    • Macintosh II
  • Rust 言語 で実装されており、効率性と安全性を重視
  • オープンソースとして MIT ライセンス で公開

体験とドキュメント

  • Web ブラウザーで実行できる 制限付きデモ版 を提供
    • ただし、ソフトウェア全体のすべての機能 (特に GUI など) が提供されるわけではない
  • 詳細なインストール方法と利用方法は オンラインドキュメント を参照可能

ダウンロード案内

  • 現在は 最新の開発版 (bleeding edge build) のみが自動提供されている
    • Windows 10 以降 (x86 64ビット)
    • macOS 11.7 (Big Sur) 以降 (ユニバーサル)
    • Linux (Ubuntu 24.04, x86 64ビット および ARM64)
  • OS ごとにすぐにダウンロード可能なビルドファイルを配布中

問い合わせと参加

  • GitHub リポジトリを通じて issue の報告や貢献が可能

1件のコメント

 
GN⁺ 2025-06-28
Hacker News の意見
  • クラシック Mac システム向けの、持ち運び可能でユーザーフレンドリーなハードウェアレベルのエミュレーターが大きな意味を持つようになった文脈については、2020年のブログ記事が参考になる https://invisibleup.com/articles/30/ ゲーム機には Nestopia、bsnes、Dolphin、Duckstation など優れたエミュレーターがかなり前から存在していた一方、PC では VMWare や VirtualBox のような仮想化システムが一般的な需要を満たしてきており、近年は 86Box や MartyPC のような高精度エミュレーターも登場している Commodore 64 には VICE、Amiga には WinUAE、Apple II には KEGS や AppleWin のような質の高いエミュレーターがあるが、Mac 側は Basilisk II のような高水準抽象化に近く、やや大まかに似せて再現する程度のエミュレーターが中心だったと思う

    • 互換性の面ではかなり不足しているが、Executor という代替手段もあると指摘 https://en.wikipedia.org/wiki/Executor_(software) ブラウザが MS-DOS をエミュレートし、その上で Executor/DOS により Macintosh 向けソリティアゲームを実行できるデモ https://archive.org/details/executor Executor/DOS のほか、680x0 プロセッサを使っていた Sun 3 ワークステーション向けの非公開版や、NEXTSTEP 環境向けの Executor/NEXTSTEP もある Executor は Apple の知的財産を一切使っていないため最も互換性が低い点を指摘、ROM とシステムソフトウェアの代替物はどちらもクリーンルーム方式で新規に書かれている 古いバージョンの Executor は gcc 専用拡張を使っているため、現在の Linux ではビルドが難しいか不可能かもしれない Executor プロジェクトの初期バージョンを自分で開発しており、高性能な 68k エミュレーターやカラ―サブシステムなどは、はるかに優秀なプログラマーが開発した

    • その記事の内容は事実だが、世間の無償貢献コミュニティの努力そのものを過度に軽視しているように感じるという意見に同意

    • MAME もハードウェアレベルで Macintosh と Apple II をエミュレートしている点を強調、KEGS や AppleWin より正確で周辺機器対応も多いが、ユーザーフレンドリーさの面では劣る

    • Macintosh II FDHD エミュレーターを動かしてみたが、メニュー上では 400K/800K フロッピーだけを読み込めというメッセージしか出ない一方、Snow の説明書には SuperDrive を2台サポートすると明記されている https://docs.snowemu.com/manual/media/floppies そのためか、これまで与えたフロッピーイメージをすべて即座に排出してしまい、Mac II 互換システム向けの 800K System 7.1.1 ディスクすら認識しなかった Snow 自体には大きな可能性があると思うし労に敬意は払うが、Mac エミュレーション界隈は依然として、各エミュレーターごとに対応ハードウェアや機能がばらばらで、さまざまな裏技や旧 Mac 内部構造に関する事前知識もまだ必要で、未来志向の約束ばかりが多い印象

    • MAME が 68k ベースの Macintosh もある程度サポートしているという情報共有 https://wiki.mamedev.org/index.php/Driver:Mac_68K

  • エミュレーターの正確性のため、おそらく BasiliskII が持つ決定的な機能のいくつかは欠けているはず BasiliskII は OS や ROM のパッチにより超高解像度対応、ホストファイルシステムやネットワークとの(概ね)シームレスな統合など、さまざまな機能を提供する しかしこれが大ざっぱだったり正確でなかったりするからか、ユーザー体験そのものには独特の完全性はないものの、うまく動くときは本当に快適な使い勝手を保証してくれる

    • 正確なエミュレーターでコードベースもきれいなら、こうしたパッチや機能は後から載せやすそう Basilisk のパッチコードも自分で見た限り実際には複雑ではなく、Executor(このスレッドに作者が登場している)や MACE など、Toolbox の部分的な再実装例もあるので、移植するにはそれなりの分量になるだろうが、元のコードをほぼそのまま移してテスト基盤を整えれば十分そうに見える
  • Mac 用 ROM ファイルの入手方法について助言がほしい Google で見つけたサイトからいくつかダウンロードしたが、エミュレーターがずっと「不明または未対応の ROM ファイル」というエラーを出す 使える ROM を見つける方法を尋ねる

  • 大学を卒業した頃の初期の仕事の成果物が、Mac フォーマットの Bernoulli ディスクに保存されている そのソフトウェアを動かすには ADB ドングルが必須なので、物理ハードウェアが必要になるのではないかと疑問に思っている 知りたいのは、ADB-USB アダプターの中に、エミュレーターへ接続できるようマッピングできるものがあるかどうか

    • 今まで知っている ADB-USB アダプターはマウスとキーボードしかサポートせず、内部ファームウェアも USB HID にしかマッピングできない 完全なパススルーにはカスタムファームウェアが必要で、むしろそのソフトウェアのコピー防止技術をハックするほうが簡単かもしれないという意見

    • まだバックアップしていないならデータ消失の危険があるので、大切ならできるだけ早く確認したほうがよいと勧める

    • 動く Bernoulli ドライブを持っている人は、たいてい適合する旧 Mac ハードウェアも一緒に持っていることが多いという意見

    • 次の製品が役立つかもしれない https://www.bigmessowires.com/usb-wombat/

  • Rust で再実装された 68K エミュレーターであり、Musashi や UAE のような広く知られた C 言語ベースの CPU コードを一切使っていない点を強調

  • 一般に入手しやすい Mac OS 7.1 のインストールディスクと Mac Plus ROM ファイルで起動を試みたところ、ドライブ 0 がディスクを延々と排出してしまう Mini vMac では問題なく動作し、まだ改善が必要そうだという印象

  • Mac SE や II などで HD20 対応が「該当なし」と表示されているのが不思議だという意見 すべてのモデル(II を除く)で ROM レベルの HD20 ブート対応がある 実際に Mac SE で HD20 エミュレーターを使っており、さまざまな形式のディスクイメージを Mac 用にもフロッピーエミュレーター用にも簡単に適用できる非常に良い方法だと思う

  • Lisa のように Mac でもハードウェアの「サイクル精度(cycle accuracy)」が必要なのか気になる Lisa では OS がハードウェアタイミングを前提としており、Qemu のようなエミュレーターでは満たせないという話に言及

    • 初期の Mac は IWM(ディスク II コントローラーを集約したチップ)を使っており、Apple II と同様にサイクル一致コードを活用していた カーソルの動きが突然止まる現象は、ディスク書き込み中には 60Hz 割り込みタイマーを無効にしなければならないため Andy Hertzfeld がその問題について Folklore.org で触れていたという逸話を共有 https://www.folklore.org/Nybbles.html Apple II にあった奇妙なディスクコピー防止手法(スパイラルトラック、サイズの異なるセクター、さまざまな nibbilization 方式)は理論上 Mac でも可能で、実際に使われた例があるのか気になる
  • とても臨場感のある実装だという個人的な感想を共有 Atari ST のエミュレーションも可能になる見込みがあるか質問

    • すでに非常に高水準な Atari ST エミュレーター Hatari プロジェクトがあると紹介 https://github.com/hatari/hatari また、低遅延を追求する Clock Signal(CLK)というエミュレーターでは、Acorn、Amstrad、Apple II/II+/IIe、Atari ST や 2600 など各種レトロ機器まで幅広く扱っている https://github.com/TomHarte/CLK