Snow - Emulator Macintosh Klasik
(snowemu.com)- 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
#snowpada The Opcode Collective Discord
1 komentar
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
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
Ia lebih akurat daripada KEGS atau AppleWin dan menangani lebih banyak periferal, tetapi kurang ramah pengguna
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
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
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
Untuk passthrough mentah ke emulator, sepertinya Anda perlu menulis firmware kustom. Mungkin lebih mudah untuk meng-crack software-nya
Kalau datanya berharga, sebaiknya periksa sebelum terlambat
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
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:
Rasanya benar-benar seperti perangkat asli, dan pengerjaannya sangat bagus. Apakah ini bisa dipakai juga untuk emulasi Atari ST?
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