3 poin oleh GN⁺ 2025-06-28 | 1 komentar | Bagikan ke WhatsApp
  • Snow mereproduksi Macintosh klasik berbasis Motorola 680x0 secara mendekati perangkat keras, sehingga lingkungan Mac lama dapat digunakan di sistem modern
  • Menargetkan emulasi tingkat perangkat keras, bukan patch ROM atau intersepsi system call, serta menyediakan UI grafis dan fitur debugging
  • Mendukung berbagai model Mac klasik, dari Macintosh 128K hingga SE/30, sehingga lini Mac awal dapat dieksplorasi secara luas
  • Proyek open source berlisensi MIT yang ditulis dengan Rust, dengan demo online terbatas dan dokumentasi instalasi yang tersedia untuk publik
  • Rilis stabil dapat diunduh dari GitHub, sementara build pengembangan terbaru tersedia untuk Windows, macOS, dan Linux, meski dengan pengujian yang lebih terbatas

Emulasi Mac klasik yang mendekati perangkat keras

  • Snow adalah proyek untuk mengemulasi komputer Macintosh klasik berbasis Motorola 680x0
  • Menyediakan antarmuka pengguna grafis untuk mengoperasikan mesin yang diemulasi, serta fitur debugging yang luas
  • Tujuannya adalah mengemulasi Macintosh sebisa mungkin pada tingkat perangkat keras, bukan dengan mem-patch ROM atau mengintersepsi system call
  • Model yang saat ini didukung:
    • Macintosh 128K/512K/512Ke
    • Macintosh Plus
    • Macintosh SE, non-FDHD dan FDHD
    • Macintosh Classic
    • Macintosh II, non-FDHD dan FDHD
    • Macintosh IIx, IIcx, SE/30

Cara rilis dan jalur untuk mencoba

  • Bahasa implementasinya adalah Rust, dan tersedia sebagai open source di GitHub
  • Lisensinya adalah MIT license
  • Tersedia demo online terbatas, tetapi hanya mesin yang diemulasi yang dapat digunakan, tanpa UI atau fitur lain dari perangkat lunak lengkapnya
  • Informasi instalasi dan tambahan dapat dilihat di dokumentasi online

Rilis dan kanal dukungan

  • Rilis stabil dipaketkan ketika milestone tertentu tercapai
  • Rilis stabil dapat diunduh dari GitHub releases
  • Build pengembangan terbaru (bleeding edge) dibuat otomatis seiring kemajuan pengembangan emulator, dan dapat menyertakan fitur yang lebih baru, tetapi pengujiannya lebih sedikit
  • Build pengembangan terbaru yang tersedia:
    • Windows 10 atau lebih baru x86 64-bit
    • Windows 10 atau lebih baru ARM64
    • macOS 11.7 Big Sur atau lebih baru Universal
    • Linux Ubuntu 24.04 x86 64-bit
    • Linux Ubuntu 24.04 ARM64
  • Laporan bug dan permintaan peningkatan diterima melalui GitHub issues
  • Dukungan atau diskusi tersedia di kanal #snow pada The Opcode Collective Discord

1 komentar

 
GN⁺ 2025-06-28
Komentar Hacker News
  • Untuk melihat latar belakang mengapa emulator tingkat hardware yang portabel dan mudah digunakan untuk Mac klasik itu penting, lihat tulisan tahun 2020 ini: https://invisibleup.com/articles/30/
    Konsol game sudah lama punya emulator seperti Nestopia, bsnes, Dolphin, dan Duckstation; di sisi PC, virtualisasi seperti VMWare dan VirtualBox memenuhi sebagian besar kebutuhan, dan belakangan juga muncul emulator berfidelitas tinggi seperti 86Box dan MartyPC
    C64 punya VICE, Amiga punya WinUAE, dan Apple II juga punya emulator berkualitas tinggi seperti KEGS dan AppleWin, tetapi Mac pada umumnya masih bertahan di emulator tingkat tinggi dan aproksimatif seperti Basilisk II

    • Kompatibilitasnya jauh lebih rendah daripada yang lain, tetapi ada juga Executor: https://en.wikipedia.org/wiki/Executor_(software)
      Anda bahkan bisa menjalankan solitaire versi Macintosh di browser dengan membuat browser mengemulasikan MS-DOS lalu menjalankan Executor/DOS di atasnya: https://archive.org/details/executor
      Selain Executor/DOS, ada juga versi yang tidak pernah dirilis publik yang berjalan di workstation Sun 3, dan Executor/NEXTSTEP berjalan di mesin NeXT serta mendukung perangkat berbasis 680x0 maupun PC x86 yang bisa menjalankan NEXTSTEP
      Karena Executor sama sekali tidak menggunakan kekayaan intelektual Apple, kompatibilitasnya paling rendah; pengganti ROM dan software sistemnya adalah implementasi clean-room yang tidak membongkar Apple ROM ataupun file System
      Ada port Linux, tetapi kemungkinan besar sulit di-build. Pasalnya, CPU sintetisnya bergantung pada ekstensi khusus gcc demi memaksimalkan performa di 80386
      Saya cukup tahu tentang Executor, karena sayalah yang menulis versi awalnya. Namun bagian-bagian yang benar-benar mengesankan, seperti emulator 68k sintetis dan subsistem warna, dibuat oleh para programmer yang jauh lebih hebat daripada saya
    • Tulisan itu secara objektif benar, tetapi baru kali ini saya melihat kerja keras yang telah dilakukan orang-orang secara gratis diremehkan dengan cara seaneh ini
    • Mungkin sulit disebut “ramah pengguna”, tetapi MAME mengemulasikan Macintosh dan Apple II pada tingkat hardware
      Ia lebih akurat daripada KEGS atau AppleWin dan menangani lebih banyak periferal, tetapi kurang ramah pengguna
    • Saya memang berhasil mem-boot emulator Macintosh II FDHD, tetapi meskipun manual Snow mengatakan emulator Mac II FDHD menyediakan dua SuperDrive, di menu emulator https://docs.snowemu.com/manual/media/floppies hanya muncul opsi untuk memuat floppy 400K/800K
      Mungkin karena itu, semua image floppy yang saya coba sejauh ini langsung dikeluarkan, termasuk disk System 7.1.1 800K yang disebut kompatibel dengan Mac II
      Potensi Snow besar dan saya menghargai upaya yang dicurahkan, tetapi jujur saja, lanskap emulasi Mac sejauh ini tidak terlihat banyak berubah dari sebelumnya. Berbagai emulator menyediakan matriks produk yang bergelombang untuk hardware yang diemulasikan dan fitur yang didukung, membutuhkan banyak prosedur serta pengetahuan awal tentang struktur internal Mac lama, dan masih tampak berada pada tahap menjanjikan masa depan
    • Hal yang tidak boleh dilupakan: MAME juga mendukung 68k Macintosh sampai taraf tertentu
      https://wiki.mamedev.org/index.php/Driver:Mac_68K
  • Karena mengejar akurasi, sepertinya ia tidak akan punya fitur-fitur kuat BasiliskII. BasiliskII mem-patch OS/ROM untuk menambahkan resolusi supertinggi serta integrasi yang nyaris mulus dengan sistem file dan jaringan host
    Sayangnya Basilisk cukup tidak stabil, entah karena ketidakakuratannya atau karena fitur-fiturnya yang kuat. Saat berjalan dengan benar, ia benar-benar nyaman digunakan

    • Emulator yang akurat dan codebase yang rapi adalah titik awal yang bagus untuk menambahkan patch atau jalan pintas
      Saya pernah melihat kode patch Basilisk, dan itu tidak terlalu rumit; di kode internal Basilisk, Executor, MACE, dan lainnya juga ada beberapa implementasi ulang sebagian Toolbox
      Mem-porting-nya akan butuh sedikit pekerjaan, tetapi secara umum rasanya akan lebih mendekati terjemahan langsung kode dan penambahan berbasis pengujian
  • Bagaimana cara menemukan ROM? Saya sudah mengunduh beberapa dari situs yang ditemukan lewat Google, tetapi emulator selalu mengatakan “Unknown or unsupported ROM file”. Di mana bisa mendapatkan file ROM yang bisa dipakai?

  • Banyak pekerjaan awal saya tepat setelah lulus kuliah tersimpan di tumpukan disk Bernoulli berformat Mac
    Untuk menjalankan software-nya diperlukan dongle ADB, jadi saya butuh hardware nyata. Saya penasaran apakah ada adaptor ADB-USB yang bisa dipetakan ke emulator

    • Semua adaptor ADB-USB yang saya tahu hanya mendukung mouse dan keyboard, dan firmware internalnya memetakannya sebagai USB HID
      Untuk passthrough mentah ke emulator, sepertinya Anda perlu menulis firmware kustom. Mungkin lebih mudah untuk meng-crack software-nya
    • Jika belum pernah dicadangkan, data itu mungkin sudah hilang
      Kalau datanya berharga, sebaiknya periksa sebelum terlambat
    • Orang yang punya Bernoulli box yang masih berfungsi kemungkinan besar juga punya Mac lama yang cocok dengannya
    • Ini mungkin bisa: https://www.bigmessowires.com/usb-wombat/
  • Saya mencoba memuatnya dengan disk instalasi standar Mac OS 7.1 dan ROM Mac Plus yang mudah didapat, tetapi disk dikeluarkan dari Drive 0
    Melihat Mini vMac berjalan, tampaknya ini masih perlu perbaikan

  • Agak mengejutkan bahwa dukungan HD20 untuk SE, II, dan lainnya ditampilkan sebagai “tidak berlaku”. Setahu saya, semua model dalam daftar selain II memiliki dukungan boot HD20 di ROM
    Saya juga menggunakan emulator HD20 pada Mac SE sungguhan
    Ini adalah salah satu cara paling praktis untuk membawa image disk berukuran arbitrer ke emulator Mac maupun emulator floppy fisik

  • Karena ini adalah emulator 68K yang diimplementasikan ulang dengan Rust, tidak ada bagian yang berbagi dengan core CPU terkenal berbasis C seperti Musashi atau kode UAE

  • Apakah Mac juga memerlukan emulasi yang akurat per siklus pada perangkat keras seperti Lisa? Saya pernah mencoba lisaem dan juga bereksperimen dengan Qemu, tetapi Lisa OS membuat asumsi tentang timing perangkat keras yang tidak bisa dipenuhi Qemu

    • Mac awal memakai IWM, yang pada dasarnya adalah pengendali Disk II tahun 1977 buatan Wozniak yang diperkecil menjadi satu chip
      Teknik kode yang akurat per siklus seperti yang digunakan di Apple II juga dipakai di Mac
      Inilah sebabnya kursor kadang berhenti saat menulis ke disk. Di Mac ada timer interupsi 60Hz yang juga melacak kursor, tetapi saat operasi tulis harus dimatikan
      Hal ini juga disinggung sekilas dalam tulisan Andy Hertzfeld di Folklore.org:

      Woz's disk technology required that the software feed it new data every 32 microseconds exactly. If we were even a single microsecond early or late, it would cause a glitch in the data and ruin it. In order to write the routines, I needed to know how fast the Macintosh executed each instruction. The manual gave the number of clocks for each instruction, but I wasn't sure how long it took to fetch from memory. So of course, I asked Burrell what the timings were, but I was surprised at his response.
      "I don't know. The Mac is synchronous, just like the Apple II, so each instruction has the same timing, every time you execute it, so you will be able to write disk routines that have exact timing. I don't know what it is, so we'll just measure it. Why don't you write your routine and we'll measure it with the logic analyzer."
      -- https://www.folklore.org/Nybbles.html
      Melihat ini, rasanya teknik disk unik Apple II seperti track spiral, sektor dengan ukuran berbeda, dan berbagai metode nibblization secara teori juga mungkin dilakukan di Mac. Saya penasaran apakah itu benar-benar pernah digunakan untuk proteksi salin

  • Rasanya benar-benar seperti perangkat asli, dan pengerjaannya sangat bagus. Apakah ini bisa dipakai juga untuk emulasi Atari ST?

    • Bukankah Hatari sudah sangat bagus? https://github.com/hatari/hatari
      Ada juga Clock Signal (CLK). Deskripsinya adalah “emulator yang membenci latensi untuk Acorn Electron dan Archimedes, Amstrad CPC, Apple II/II+/IIe dan Macintosh awal, Atari 2600 dan ST, ColecoVision, Enterprise 64/128, Commodore Vic-20 dan Amiga, MSX 1/2, Oric 1/Atmos, PC kompatibel awal, Sega Master System, Sinclair ZX80/81 dan ZX Spectrum”: https://github.com/TomHarte/CLK