Snow - Klasik Macintosh emülatörü
(snowemu.com)- Snow, Motorola 680x0 tabanlı klasik Macintosh sistemlerini donanıma yakın biçimde yeniden oluşturarak eski Mac ortamlarının modern sistemlerde kullanılabilmesini sağlar
- ROM yaması ya da sistem çağrılarını yakalama yerine donanım düzeyinde emülasyonu hedefler ve grafik arayüz ile hata ayıklama özelliklerini birlikte sunar
- Macintosh 128K'den SE/30'a kadar çeşitli klasik Mac modellerini destekleyerek erken dönem Mac ailesini geniş kapsamda denemeyi mümkün kılar
- Rust ile yazılmış MIT lisanslı açık kaynak bir projedir; sınırlı bir çevrimiçi demo ve kurulum dokümantasyonu yayımlanmıştır
- Kararlı sürümler GitHub'dan indirilebilir; en güncel geliştirme derlemeleri ise daha az test edilmiş olmakla birlikte Windows, macOS ve Linux için sunulur
Donanıma yakın klasik Mac emülasyonu
- Snow, klasik Motorola 680x0 tabanlı Macintosh bilgisayarlarını emüle eden bir projedir
- Emüle edilen makineyi kullanmak için grafik kullanıcı arayüzü ve kapsamlı hata ayıklama özellikleri sunar
- ROM'u yamalamak veya sistem çağrılarını yakalamak yerine, Macintosh'u mümkün olduğunca donanım düzeyinde emüle etmeyi amaçlar
- Şu anda desteklenen modeller:
- Macintosh 128K/512K/512Ke
- Macintosh Plus
- Macintosh SE, non-FDHD ve FDHD
- Macintosh Classic
- Macintosh II, non-FDHD ve FDHD
- Macintosh IIx, IIcx, SE/30
Yayınlanma biçimi ve deneme yolları
- Uygulama dili Rust'tır ve GitHub'da açık kaynak olarak yayımlanmaktadır
- Lisans MIT license lisansıdır
- Sınırlı bir çevrimiçi demo sunulmaktadır, ancak burada tam yazılımın arayüzü veya diğer özellikleri olmadan yalnızca emüle edilen makine kullanılabilir
- Kurulum ve ek bilgiler çevrimiçi dokümantasyonda bulunabilir
Sürümler ve destek kanalları
- Kararlı sürümler, belirli kilometre taşlarına ulaşıldığında paketlenir
- Kararlı sürümler GitHub releases sayfasından indirilebilir
- En güncel geliştirme derlemeleri (bleeding edge) emülatör geliştikçe otomatik olarak oluşturulur; daha yeni özellikler içerebilir ancak daha az test edilmiştir
- Sunulan en güncel geliştirme derlemeleri:
- Windows 10 ve üzeri x86 64-bit
- Windows 10 ve üzeri ARM64
- macOS 11.7 Big Sur ve üzeri Universal
- Linux Ubuntu 24.04 x86 64-bit
- Linux Ubuntu 24.04 ARM64
- Hata bildirimleri ve iyileştirme talepleri GitHub issues üzerinden alınır
- Destek veya sohbet için The Opcode Collective Discord üzerindeki
#snowkanalı kullanılabilir
1 yorum
Hacker News yorumları
Klasik Mac için taşınabilir ve kullanımı kolay, donanım düzeyinde bir emülatörün neden önemli olduğuna dair arka planı görmek için 2020 tarihli şu yazıya bakılabilir: https://invisibleup.com/articles/30/
Oyun konsolları tarafında Nestopia, bsnes, Dolphin, Duckstation gibi emülatörler uzun zamandır vardı; PC tarafında ise VMWare ve VirtualBox gibi sanallaştırma çözümleri ihtiyaçların çoğunu karşıladı, yakın zamanda da 86Box ve MartyPC gibi yüksek doğruluklu emülatörler çıktı.
C64 için VICE, Amiga için WinUAE, Apple II için de KEGS ve AppleWin gibi yüksek kaliteli emülatörler vardı; ama Mac tarafı çoğunlukla Basilisk II gibi yüksek düzeyli, yaklaşık emülatörlerde kalmıştı.
Tarayıcının MS-DOS’u emüle edip onun üzerinde Executor/DOS’u çalıştırmasını sağlayarak Macintosh sürümü Solitaire’i tarayıcıda da çalıştırmak mümkün: https://archive.org/details/executor
Executor/DOS’un dışında, yayımlanmamış bir sürüm Sun 3 iş istasyonlarında çalışıyordu; Executor/NEXTSTEP ise NeXT makinelerinde çalışıyor ve hem 680x0 tabanlı cihazları hem de NEXTSTEP çalıştırabilen x86 PC’leri destekliyordu.
Executor, Apple’ın fikri mülkiyetini hiç kullanmadığı için uyumluluğu en düşük olanıydı; ROM ve sistem yazılımı ikameleri, Apple ROM’u ya da System dosyaları tersine mühendislik edilmeden yapılan clean-room uygulamalarıydı.
Bir Linux portu var ama derlemesi muhtemelen zor. Çünkü 80386’dan mümkün olduğunca yüksek performans almak için sentez CPU, gcc’ye özgü uzantılara dayanıyordu.
Executor hakkında epey bilgim var; çünkü ilk sürümlerini ben yazmıştım. Ancak sentez 68k emülatörü ya da renk alt sistemi gibi gerçekten etkileyici kısımları, benden çok daha iyi programcılar yaptı.
KEGS ya da AppleWin’den daha doğru ve daha fazla çevre birimini kapsıyor, fakat daha az kullanıcı dostu.
Belki bu yüzden şimdiye kadar denediğim tüm disket imajları hemen çıkarıldı; Mac II ile uyumlu olduğu söylenen 800K System 7.1.1 diski de buna dahildi.
Snow’un potansiyeli büyük ve harcanan emeğe saygı duyuyorum, ama açıkçası şimdiye kadarki Mac emülasyonu manzarası eskisinden çok da farklı görünmüyor. Birden fazla emülatör, emüle ettikleri donanım ve destekledikleri özellikler bakımından engebeli bir ürün matrisi sunuyor; pek çok işlem ve eski Mac iç yapıları hakkında ön bilgi gerektiriyor ve gelecek vaat eden bir durumda görünüyor.
https://wiki.mamedev.org/index.php/Driver:Mac_68K
Doğruluk nedeniyle BasiliskII’nin güçlü özellikleri muhtemelen olmayacaktır. BasiliskII, OS/ROM’u yamalayarak ultra yüksek çözünürlük ve ana makine dosya sistemi ile ağla neredeyse sorunsuz entegrasyon ekliyor.
Basilisk’in yanlış doğrulukta ama güçlü özellikleri yüzünden epey kararsız olması üzücü. Düzgün çalıştığında kullanımı gerçekten çok keyifli.
Basilisk’in yama koduna baktım; o kadar karmaşık değildi. Basilisk’in iç kodunda, Executor’da, MACE’de vb. Toolbox’ın bazı bölümlerinin yeniden uygulanmış halleri de var.
Taşımak biraz çalışma gerektirir, ama genel olarak kodun doğrudan çevirisi ve test tabanı eklemeye yakın olur gibi görünüyor.
ROM’u nasıl bulabilirim? Google’da bulduğum sitelerden birkaç tane indirdim ama emülatör her zaman “Unknown or unsupported ROM file” diyor. Kullanılabilir ROM dosyası nereden bulunabilir?
Üniversiteden mezun olduktan hemen sonra yaptığım ilk işlerin önemli bir kısmı Mac formatlı Bernoulli diskleri yığınında duruyor.
Yazılımı çalıştırmak için ADB dongle gerektiğinden gerçek donanım gerekiyor. Emülatöre eşlenebilecek bir ADB-USB adaptörü var mı merak ediyorum.
Emülatöre ham passthrough yapmak için sanırım özel firmware yazmak gerekir. Muhtemelen yazılımı cracklemek daha kolay olabilir.
Değerli bir veriyse geç olmadan kontrol etmek iyi olur.
Kolayca bulunabilen standart Mac OS 7.1 kurulum diski ve Mac Plus ROM’u ile yüklemeyi denedim; Drive 0’da disk çıkarılıyor
Mini vMac’in çalıştığını görünce bunun hâlâ iyileştirilmesi gerektiği anlaşılıyor
SE, II vb. için HD20 desteğinin “geçerli değil” olarak gösterilmesi şaşırtıcı. II hariç listedeki tüm modellerin ROM’unda HD20’den önyükleme desteği olduğunu biliyorum
Gerçek bir Mac SE’de de HD20 emülatörü kullanıyorum
İsteğe bağlı boyutta disk imajlarını hem Mac emülatörüne hem de gerçek disket emülatörüne taşımanın en rahat yollarından biri
Rust ile yeniden uygulanmış bir 68K emülatörü olduğu için, C ile yazılmış iyi bilinen CPU çekirdekleri Musashi veya UAE koduyla ortak bir kısmı yok
Mac’te de Lisa’daki gibi donanımın cycle-accurate emülasyonu gerekli mi? lisaem’i kullandım ve Qemu ile de denemeler yaptım, ancak Lisa OS donanım zamanlaması hakkında Qemu’nun karşılayamayacağı varsayımlarda bulunuyor
Apple II’de kullanılanlarla aynı cycle-accurate kod teknikleri Mac’te de kullanılmıştı
Diske yazarken imlecin ara sıra durmasının nedeni de bu. Mac’te imleci de izleyen 60 Hz’lik bir kesme zamanlayıcısı var, ancak yazma işlemi sırasında bunun kapatılması gerekiyor
Folklore.org’daki Andy Hertzfeld yazısında da buna şöyle değiniliyor:
Gerçekten fiziksel cihaz hissi veriyor ve yapılan iş çok iyi. Bu, Atari ST emülasyonunda da kullanılabilir mi?
Clock Signal (CLK) de var. Kendisini “Acorn Electron ve Archimedes, Amstrad CPC, Apple II/II+/IIe ve ilk Macintosh, Atari 2600 ve ST, ColecoVision, Enterprise 64/128, Commodore Vic-20 ve Amiga, MSX 1/2, Oric 1/Atmos, ilk PC uyumluları, Sega Master System, Sinclair ZX80/81 ve ZX Spectrum için gecikmeden hoşlanmayan bir emülatör” olarak tanımlıyor: https://github.com/TomHarte/CLK