3 puan yazan GN⁺ 2025-06-28 | 1 yorum | WhatsApp'ta paylaş
  • Snow, Motorola 680x0 tabanlı Macintosh donanımının davranışını gerçeğe mümkün olduğunca yakın biçimde yeniden üreten açık kaynaklı bir emülatördür
  • Grafik kullanıcı arayüzü (GUI) ve güçlü hata ayıklama özellikleri sunar
  • Mevcut emülatörlerden farklı olarak ROM yaması veya sistem çağrılarını yakalama işlemlerini en aza indiren bir yaklaşım kullanır
  • Macintosh 128K/512K/Plus/SE/Classic/II modellerini destekler
  • Rust tabanlı olarak geliştirilmiştir ve çeşitli işletim sistemlerinde derlenip indirilebilir

Proje genel bakışı

  • Snow, klasik Macintosh (680x0 ailesi) bilgisayarlarını yazılımsal olarak yeniden oluşturan bir emülatördür
  • Kullanıcılar, grafik arayüz üzerinden gerçek bir Mac kullanıyormuş gibi etkileşim kurabilir
  • Hata ayıklama özellikleri zengindir; bu da geliştirme ve analiz açısından avantaj sağlar

Çalışma şekli ve özellikler

  • Snow, mümkün olduğunca donanım seviyesinde (low-level) tam emülasyonu hedefler
    • Bu yaklaşım, ROM'u yamalamak veya sistem çağrılarını atlatmak gibi yaygın yöntemler yerine, gerçek donanım gibi çalışmasını sağlar
  • Resmî olarak desteklenen modeller:
    • Macintosh 128K
    • Macintosh 512K
    • Macintosh Plus
    • Macintosh SE
    • Macintosh Classic
    • Macintosh II
  • Rust dili ile geliştirilmiştir; verimlilik ve güvenliği öne çıkarır
  • Açık kaynak olarak MIT lisansı ile yayımlanmaktadır

Deneyim ve belgeler

  • Web tarayıcısında çalıştırılabilen sınırlı bir demo sürümü sunulur
    • Ancak tüm yazılımın bütün özelliklerini, özellikle de GUI gibi unsurları sağlamaz
  • Ayrıntılı kurulum ve kullanım bilgilerine çevrimiçi belgeler üzerinden ulaşılabilir

İndirme bilgileri

  • Şu anda yalnızca en güncel geliştirme sürümü (bleeding edge build) otomatik olarak sunulmaktadır
    • Windows 10 ve üzeri (x86 64-bit)
    • macOS 11.7 (Big Sur) ve üzeri (universal)
    • Linux (Ubuntu 24.04, x86 64-bit ve ARM64)
  • İşletim sistemi bazında hemen indirilebilen derleme dosyaları dağıtılmaktadır

İletişim ve katkı

  • GitHub deposu üzerinden issue açabilir ve katkıda bulunabilirsiniz

1 yorum

 
GN⁺ 2025-06-28
Hacker News yorumları
  • Klasik Mac sistemleri için taşınabilir ve kullanıcı dostu, donanım seviyesinde bir emülatörün neden önemli hale geldiğine dair bağlam için 2020 tarihli şu blog yazısına bakılabilir: https://invisibleup.com/articles/30/ Oyun konsolları için Nestopia, bsnes, Dolphin, Duckstation gibi harika emülatörler uzun zamandır vardı; PC tarafında ise VMWare ve VirtualBox gibi sanallaştırma sistemleri kitlesel ihtiyacı karşıladı, son dönemde de 86Box ve MartyPC gibi yüksek doğruluklu emülatörler çıktı. Commodore 64 için VICE, Amiga için WinUAE, Apple II için KEGS ve AppleWin gibi kaliteli emülatörler var, ancak Mac tarafında daha çok Basilisk II gibi yüksek seviyeli soyutlamaya yakın, biraz kabaca benzerini yeniden oluşturan emülatörler baskındı diye düşünüyorum

    • Uyumluluk açısından oldukça zayıf olsa da Executor adlı bir alternatif de vardı: https://en.wikipedia.org/wiki/Executor_(software) Tarayıcıda MS-DOS emüle edilip onun üzerinde Executor/DOS ile Macintosh için Solitaire oyununun çalıştırıldığı bir demo da var: https://archive.org/details/executor Executor/DOS dışında, 680x0 işlemci kullanan Sun 3 iş istasyonları için özel bir sürüm ve NEXTSTEP ortamı için Executor/NEXTSTEP de vardı. Executor, Apple'ın fikri mülkiyetini hiç kullanmadığı için en düşük uyumluluğa sahipti; hem ROM hem de sistem yazılımı yerine geçen parçalar tamamen clean-room yöntemiyle baştan yazılmıştı. Executor'ın eski sürümleri gcc'ye özel uzantılar kullandığı için bugün Linux üzerinde derlemek zor ya da imkansız olabilir. Projenin ilk sürümlerini bizzat geliştirmiştim; yüksek performanslı 68k emülatörü ve renk alt sistemi gibi parçaları ise benden çok daha iyi programcılar yazdı

    • Yazıdaki içerik doğru ama genel olarak ücretsiz katkı sunan topluluğun çabasını fazla küçümsüyor gibi hissettirdiğine katılıyorum

    • MAME'in de Macintosh ve Apple II'yi donanım seviyesinde emüle ettiğini vurgulamak gerekir; KEGS ve AppleWin'den daha doğru ve çevre birimi desteği daha geniş, ama kullanıcı dostluğu daha düşük

    • Macintosh II FDHD emülatörünü çalıştırmayı denedim ama menüde yalnızca 400K/800K floppy yüklenmesi gerektiğine dair bir mesaj görünüyor. Snow belgelerinde ise iki adet SuperDrive desteklediği açıkça yazıyor: https://docs.snowemu.com/manual/media/floppies Bu yüzden mi bilmiyorum ama şimdiye kadar verdiğim tüm floppy image'larını hemen çıkarıyor; Mac II uyumlu sistemler için olan 800K System 7.1.1 diski bile tanımadı. Snow'un ciddi potansiyeli olduğunu düşünüyorum ve emeğe saygım büyük, ancak Mac emülasyon dünyasında hâlâ farklı emülatörlerin desteklediği donanım ve özellikler çok parçalı durumda; türlü türlü workaround'lar ve eski Mac iç yapısına dair ön bilgi hâlâ gerekiyor, biraz da geleceğe dönük vaatler çokmuş gibi hissettiriyor

    • MAME'in 68k tabanlı Macintosh'ları da bir ölçüde desteklediğini paylaşayım: https://wiki.mamedev.org/index.php/Driver:Mac_68K

  • Emülatör doğruluğu yüzünden, muhtemelen BasiliskII'nin sahip olduğu bazı kritik özellikler eksik olacaktır. BasiliskII, OS ve ROM yamalarıyla çok yüksek çözünürlük desteği, ana makine dosya sistemi ve ağ ile çoğunlukla sorunsuz entegrasyon gibi pek çok özellik sunuyor. Ama bunlar biraz gevşek ya da tam doğru olmadığı için, deneyim kendine özgü bir kusursuzluk taşımıyor; yine de çalıştığında gerçekten çok rahat bir kullanım sağlıyor

    • Emülatör doğruysa ve kod tabanı temizse, bu tür yamaları ya da özellikleri sonradan eklemek kolay görünür. Basilisk'in yama koduna da bakmıştım; aslında çok karmaşık değil. Executor (bu başlıkta yazarı da var), MACE ve kısmi Toolbox yeniden uygulamaları gibi örnekler mevcut. Port etmek iş olarak büyük olabilir ama asıl kodu büyük ölçüde aynen taşıyıp bir test altyapısı eklemek yeterli gibi görünüyor
  • Mac için ROM dosyalarını nasıl bulacağım konusunda tavsiye lazım. Google'da bulduğum sitelerden birkaç tane indirdim ama emülatör sürekli "bilinmeyen veya desteklenmeyen ROM dosyası" hatası veriyor. İşe yarayan ROM bulmanın bir yolu var mı?

  • Üniversiteden yeni mezun olduğum döneme ait işlerim Mac formatlı Bernoulli disklerde duruyor. Yazılımı çalıştırmak için mutlaka bir ADB dongle gerekiyor, bu yüzden fiziksel donanım şart mı diye merak ediyorum. Sorum şu: emülatöre bağlanabilecek şekilde eşlenebilen bir ADB-USB adaptörü var mı?

    • Bildiğim ADB-USB adaptörleri şu ana kadar yalnızca fare ve klavyeyi destekliyor; içlerindeki firmware sadece USB HID olarak eşleme yapabiliyor. Tam passthrough için özel firmware gerekir. Hatta o yazılımın kopya korumasını kırmak muhtemelen daha kolay olabilir

    • Henüz yedeklemediysen veri kaybı riski var; değerliyse en kısa sürede kontrol etmeni öneririm

    • Çalışan bir Bernoulli sürücüsü olan kişiler genelde onunla uyumlu eski Mac donanımına da sahip oluyor

    • Şu ürün yardımcı olabilir: https://www.bigmessowires.com/usb-wombat/

  • Rust ile yeniden uygulanmış bir 68K emülatörü olması ve Musashi ya da UAE gibi yaygın C tabanlı CPU kodlarını hiç kullanmaması dikkat çekici

  • Kolayca bulunabilen Mac OS 7.1 kurulum diski ve Mac Plus ROM dosyasıyla boot etmeyi denedim, ama sürücü 0 diski sürekli geri çıkarıyor. Mini vMac sorunsuz çalışıyor; bu tarafın biraz daha olgunlaşması gerekiyor gibi

  • Mac SE veya II gibi modellerde HD20 desteğinin "uygulanamaz" olarak işaretlenmesi garip geldi. II hariç tüm modellerde ROM düzeyinde HD20 boot desteği var. Ben bizzat Mac SE üzerinde HD20 emülatörü kullanıyorum; çeşitli disk image biçimlerini hem Mac tarafına hem de floppy emülatörüne kolayca uygulayabilmek için gerçekten çok iyi bir yöntem olduğunu düşünüyorum

  • Lisa'da olduğu gibi Mac'in de donanım için "cycle accuracy" gerektirip gerektirmediğini merak ediyorum. Lisa'da işletim sistemi donanım zamanlamasını varsayıyor ve bu da Qemu gibi emülatörlerin karşılayamadığı sorunlara yol açıyor

    • İlk Mac'ler IWM (Disk II denetleyicisini tek çipte toplayan yapı) kullanıyordu ve Apple II'de olduğu gibi cycle-eşleşmeli koda dayanıyordu. İmleç hareketinin bir anda durmasının nedeni, disk yazımı sırasında 60Hz kesme zamanlayıcısının kapatılması gerekliliğiydi. Andy Hertzfeld bu konudan Folklore.org'da bahsediyor: https://www.folklore.org/Nybbles.html Apple II'de görülen tuhaf disk kopya koruma yöntemleri—spiral izler, farklı boyutta sektörler, farklı nibbilization yöntemleri—teorik olarak Mac'te de mümkün olabilirdi; gerçekten kullanılıp kullanılmadığını merak ediyorum
  • Gerçekten çok hissiyatlı bir uygulama olmuş gibi görünüyor. Atari ST emülasyonu için de umut var mı?