3 poin oleh GN⁺ 2025-06-28 | 1 komentar | Bagikan ke WhatsApp
  • Snow adalah emulator open source yang mereproduksi perilaku perangkat keras Macintosh berbasis Motorola 680x0 sedekat mungkin dengan perangkat asli
  • Menyediakan antarmuka pengguna grafis (GUI) dan fitur debugging yang kuat
  • Berbeda dari emulator yang sudah ada, pendekatannya meminimalkan patch ROM atau intersepsi system call
  • Mendukung model Macintosh 128K/512K/Plus/SE/Classic/II
  • Dikembangkan berbasis Rust, dan dapat di-build serta diunduh di berbagai sistem operasi

Gambaran proyek

  • Snow adalah emulator yang mereproduksi komputer Macintosh klasik (keluarga 680x0) secara perangkat lunak
  • Pengguna dapat memakainya melalui antarmuka grafis seolah-olah sedang mengoperasikan Mac asli
  • Fitur debugging yang kaya membuatnya cocok untuk pengembangan maupun analisis

Cara kerja dan fitur

  • Snow menargetkan emulasi lengkap sedekat mungkin pada level perangkat keras (low level)
    • Alih-alih memakai cara umum seperti mem-patch ROM atau melewati system call, pendekatan ini membuatnya bekerja seperti perangkat keras asli
  • Model yang didukung secara resmi:
    • Macintosh 128K
    • Macintosh 512K
    • Macintosh Plus
    • Macintosh SE
    • Macintosh Classic
    • Macintosh II
  • Diimplementasikan dengan bahasa Rust untuk menekankan efisiensi dan keamanan
  • Dirilis sebagai open source dengan lisensi MIT

Demo dan dokumentasi

  • Menyediakan versi demo terbatas yang dapat dijalankan di browser web
    • Namun, tidak menyediakan semua fitur dari perangkat lunak penuh, terutama GUI dan lainnya
  • Cara instalasi dan penggunaan yang lebih rinci dapat dilihat melalui dokumentasi online

Panduan unduhan

  • Saat ini hanya versi pengembangan terbaru (bleeding edge build) yang disediakan secara otomatis
    • Windows 10 atau lebih baru (x86 64-bit)
    • macOS 11.7 (Big Sur) atau lebih baru (universal)
    • Linux (Ubuntu 24.04, x86 64-bit dan ARM64)
  • File build yang siap diunduh langsung didistribusikan untuk masing-masing sistem operasi

Pertanyaan dan partisipasi

  • Isu dapat dilaporkan dan kontribusi dapat dilakukan melalui repositori GitHub

1 komentar

 
GN⁺ 2025-06-28
Opini Hacker News
  • Untuk konteks mengapa emulator level perangkat keras yang portabel dan ramah pengguna untuk sistem Mac klasik menjadi penting, lihat juga tulisan blog tahun 2020 ini: https://invisibleup.com/articles/30/ Sementara konsol game sudah lama memiliki emulator hebat seperti Nestopia, bsnes, Dolphin, dan Duckstation, kebutuhan umum di PC selama ini dipenuhi oleh sistem virtualisasi seperti VMWare dan VirtualBox, dan belakangan juga muncul emulator presisi tinggi seperti 86Box dan MartyPC. Untuk Commodore 64 ada VICE, untuk Amiga ada WinUAE, dan untuk Apple II ada emulator berkualitas seperti KEGS dan AppleWin, tetapi di sisi Mac rasanya kebanyakan hanya ada emulator yang lebih mirip abstraksi tingkat tinggi seperti Basilisk II, yang sekadar meniru secara kasar.

    • Disebut juga ada alternatif bernama Executor, meski dari sisi kompatibilitas jauh tertinggal: https://en.wikipedia.org/wiki/Executor_(software) Ada demo browser yang mengemulasikan MS-DOS, lalu menjalankan game solitaire untuk Macintosh lewat Executor/DOS: https://archive.org/details/executor Selain Executor/DOS, ada juga versi privat untuk workstation Sun 3 yang memakai prosesor 680x0, serta Executor/NEXTSTEP untuk lingkungan NEXTSTEP. Executor ditunjukkan sebagai yang paling rendah kompatibilitasnya karena sama sekali tidak menggunakan kekayaan intelektual Apple; ROM dan pengganti perangkat lunak sistemnya semua ditulis ulang dengan pendekatan clean room. Versi lama Executor memakai ekstensi khusus gcc sehingga build di Linux modern mungkin sulit atau bahkan mustahil. Saya sendiri ikut mengembangkan versi awal proyek Executor, sementara emulator 68k yang kencang dan subsistem warna dikembangkan oleh programmer yang jauh lebih hebat.

    • Isinya memang benar, tetapi saya setuju kesannya terlalu meremehkan upaya komunitas kontribusi gratis yang sudah lama ada.

    • Ditekankan juga bahwa MAME mengemulasikan Macintosh dan Apple II pada level perangkat keras. MAME lebih akurat dan punya dukungan periferal lebih luas daripada KEGS dan AppleWin, tetapi kalah ramah pengguna.

    • Saya mencoba menjalankan emulator Macintosh II FDHD, tetapi di menu hanya muncul pesan untuk memuat floppy 400K/800K. Padahal dokumentasi Snow menyatakan mendukung dua SuperDrive: https://docs.snowemu.com/manual/media/floppies Mungkin karena itu semua image floppy yang saya masukkan langsung dimuntahkan lagi, bahkan disk System 7.1.1 800K untuk sistem kompatibel Mac II pun tidak dikenali. Menurut saya Snow punya banyak potensi dan saya menghargai kerja kerasnya, tetapi ekosistem emulasi Mac masih tetap tambal sulam, dengan dukungan perangkat keras dan fitur yang berbeda-beda antar emulator, masih butuh berbagai trik dan pengetahuan lama soal struktur internal Mac, dan terasa penuh janji yang berorientasi masa depan.

    • Berbagi informasi bahwa MAME juga mendukung Macintosh berbasis 68k sampai tingkat tertentu: https://wiki.mamedev.org/index.php/Driver:Mac_68K

  • Karena akurasi emulator, mungkin beberapa fitur penting milik BasiliskII akan hilang. BasiliskII menyediakan berbagai kemampuan seperti dukungan resolusi sangat tinggi lewat patch OS dan ROM, integrasi yang umumnya mulus dengan sistem berkas dan jaringan host, dan lain-lain. Memang pendekatan itu agak longgar atau kurang akurat, tetapi meski pengalaman penggunanya tidak punya kemurnian khas emulator akurat, saat berfungsi dengan baik hasilnya benar-benar nyaman dipakai.

    • Kalau emulatornya akurat dan basis kodenya rapi, patch atau fitur semacam itu tampaknya cukup mudah ditambahkan. Saya pernah melihat langsung kode patch Basilisk dan sebenarnya tidak terlalu rumit; ada juga contoh reimplementasi parsial Toolbox seperti Executor (penulisnya muncul di thread ini) dan MACE. Untuk mem-porting memang volumenya lumayan, tetapi sepertinya cukup dengan memindahkan sebagian besar kode aslinya hampir apa adanya dan menambahkan infrastruktur pengujian.
  • Butuh saran cara mendapatkan file ROM untuk Mac. Saya sudah mengunduh beberapa dari situs yang ditemukan lewat Google, tetapi emulator terus menampilkan error "file ROM tidak dikenal atau tidak didukung". Ada yang tahu cara menemukan ROM yang benar-benar bisa dipakai?

  • Karya awal setelah lulus kuliah saya tersimpan di disk Bernoulli berformat Mac. Untuk menjalankan perangkat lunaknya saya wajib punya dongle ADB, jadi saya penasaran apakah perangkat keras fisik benar-benar tak terhindarkan. Pertanyaannya, adakah adaptor ADB-ke-USB yang bisa dipetakan agar terhubung ke emulator?

    • Adaptor ADB-ke-USB yang saya tahu sejauh ini hanya mendukung mouse dan keyboard, dan firmware internalnya hanya bisa dipetakan sebagai USB HID. Untuk passthrough penuh akan perlu firmware kustom; malah bisa jadi lebih mudah membobol teknologi proteksi salin pada perangkat lunak itu.

    • Kalau belum dibackup, ada risiko kehilangan data; kalau itu penting, sebaiknya segera diperiksa.

    • Ada pendapat bahwa orang yang masih punya drive Bernoulli yang berfungsi biasanya juga punya perangkat keras Mac lawas yang cocok.

    • Produk berikut mungkin bisa membantu: https://www.bigmessowires.com/usb-wombat/

  • Ditekankan bahwa ini adalah emulator 68K yang direimplementasikan dalam Rust, tanpa memakai sama sekali kode CPU berbasis C yang terkenal luas seperti Musashi atau UAE.

  • Saya mencoba boot memakai disk instalasi Mac OS 7.1 yang umum didapat dan file ROM Mac Plus, tetapi drive 0 terus memuntahkan disknya. Mini vMac berjalan baik; rasanya ini masih perlu perbaikan.

  • Saya heran dukungan HD20 pada Mac SE atau II dan sejenisnya ditandai sebagai "tidak berlaku". Semua model itu (kecuali II) punya dukungan boot HD20 di level ROM. Saya sendiri memakai emulator HD20 di Mac SE, dan menurut saya itu cara yang sangat bagus untuk dengan mudah menerapkan dan memuat berbagai jenis image disk, baik ke Mac maupun ke emulator floppy.

  • Saya penasaran apakah Mac, seperti Lisa, membutuhkan "cycle accuracy" pada perangkat keras. Dalam kasus Lisa, disebutkan bahwa OS mengasumsikan timing perangkat keras tertentu sehingga emulator seperti Qemu tidak bisa memenuhinya.

    • Mac awal memakai IWM (chip yang memadatkan pengendali Disk II), dan seperti Apple II, memanfaatkan kode yang sinkron per siklus. Fenomena kursor tiba-tiba berhenti bergerak terjadi karena timer interupsi 60Hz harus dimatikan saat penulisan disk. Andy Hertzfeld pernah menyinggung kisah itu di Folklore.org: https://www.folklore.org/Nybbles.html Teknik proteksi salin disk yang aneh dari Apple II (track spiral, sektor dengan ukuran berbeda, metode nibbilization yang beragam) secara teori juga mungkin di Mac, dan saya penasaran apakah itu pernah benar-benar dipakai.
  • Kesan pribadi: implementasinya terasa sangat hidup. Ditanya juga apakah ada harapan emulasi Atari ST bisa dilakukan.