Snow - क्लासिक Macintosh एमुलेटर
(snowemu.com)- Snow Motorola 680x0-आधारित क्लासिक Macintosh को हार्डवेयर के काफ़ी करीब पुनर्निर्मित करता है, ताकि पुराने Mac वातावरण को आधुनिक सिस्टम पर चलाया जा सके
- ROM patching या system call interception के बजाय इसका लक्ष्य hardware-level emulation है, और यह ग्राफ़िकल UI के साथ debugging सुविधाएँ भी देता है
- यह Macintosh 128K से लेकर SE/30 तक कई क्लासिक Mac मॉडल सपोर्ट करता है, जिससे शुरुआती Mac श्रृंखला पर व्यापक प्रयोग संभव हैं
- यह Rust में लिखा गया MIT license open source प्रोजेक्ट है, और सीमित online demo तथा installation docs उपलब्ध हैं
- stable release GitHub से मिल सकती है, जबकि नवीनतम development build कम परीक्षण के साथ Windows, macOS और Linux के लिए उपलब्ध है
हार्डवेयर के करीब क्लासिक Mac एमुलेशन
- Snow क्लासिक Motorola 680x0-आधारित Macintosh कंप्यूटरों को emulate करने वाला प्रोजेक्ट है
- यह emulated मशीनों को चलाने के लिए ग्राफ़िकल यूज़र इंटरफ़ेस और व्यापक debugging सुविधाएँ प्रदान करता है
- ROM को patch करने या system calls को intercept करने के बजाय, इसका लक्ष्य Macintosh को यथासंभव hardware level पर emulate करना है
- वर्तमान में समर्थित मॉडल:
- Macintosh 128K/512K/512Ke
- Macintosh Plus
- Macintosh SE, non-FDHD और FDHD
- Macintosh Classic
- Macintosh II, non-FDHD और FDHD
- Macintosh IIx, IIcx, SE/30
उपलब्धता और आज़माने के तरीके
- इसकी implementation language Rust है, and इसे GitHub पर open source के रूप में प्रकाशित किया गया है
- लाइसेंस MIT license है
- एक सीमित online demo उपलब्ध है, लेकिन इसमें पूरे software का UI या अन्य सुविधाएँ नहीं हैं; केवल emulated मशीन का उपयोग किया जा सकता है
- installation और अतिरिक्त जानकारी online docs में देखी जा सकती है
रिलीज़ और सपोर्ट चैनल
- stable release निश्चित milestones तक पहुँचने पर पैकेज की जाती है
- stable release GitHub releases से डाउनलोड की जा सकती है
- नवीनतम development build (bleeding edge) एमुलेटर के विकास की प्रगति के अनुसार अपने-आप बनाई जाती है; इसमें नई सुविधाएँ हो सकती हैं, लेकिन इसका परीक्षण कम होता है
- उपलब्ध नवीनतम development build:
- Windows 10 या बाद का x86 64-bit
- Windows 10 या बाद का ARM64
- macOS 11.7 Big Sur या बाद का Universal
- Linux Ubuntu 24.04 x86 64-bit
- Linux Ubuntu 24.04 ARM64
- bug reports और improvement requests GitHub issues पर स्वीकार किए जाते हैं
- सहायता या बातचीत The Opcode Collective Discord के
#snowचैनल में की जा सकती है
1 टिप्पणियां
Hacker News की रायें
क्लासिक Mac के लिए portable और इस्तेमाल में आसान hardware-level emulator क्यों बड़ी बात है, इसकी पृष्ठभूमि समझने के लिए 2020 का लेख https://invisibleup.com/articles/30/ देखें
game consoles के लिए Nestopia, bsnes, Dolphin, Duckstation जैसे emulators लंबे समय से मौजूद हैं, PC की तरफ VMWare और VirtualBox जैसी virtualization ने ज़्यादातर ज़रूरतें पूरी कर दीं, और हाल में 86Box और MartyPC जैसे high-fidelity emulators भी आए हैं
C64 के लिए VICE, Amiga के लिए WinUAE, Apple II के लिए भी KEGS और AppleWin जैसे high-quality emulators थे, लेकिन Mac ज़्यादातर Basilisk II जैसे high-level, approximate emulators तक ही सीमित रहा
browser से MS-DOS emulate करवाकर, उसके ऊपर Executor/DOS चलाते हुए Macintosh वाला Solitaire browser में भी चला सकते हैं: https://archive.org/details/executor
Executor/DOS के अलावा, एक unreleased version Sun 3 workstations पर चलता था, और Executor/NEXTSTEP NeXT machines पर चलता था, जिसमें 680x0-आधारित devices और NEXTSTEP चला सकने वाले x86 PC दोनों supported थे
Executor ने Apple की intellectual property बिल्कुल इस्तेमाल नहीं की थी, इसलिए इसकी compatibility सबसे कम थी, और ROM व system software replacements Apple ROM या System files को disassemble किए बिना बनाए गए clean-room implementations थे
Linux port तो है, लेकिन उसे build करना मुश्किल हो सकता है। वजह यह है कि 80386 से maximum performance निकालने के लिए synthetic CPU gcc-specific extensions पर निर्भर था
Executor के बारे में मुझे काफ़ी पता है, क्योंकि शुरुआती version मैंने लिखा था। हालांकि synthetic 68k emulator या color subsystem जैसे सचमुच impressive हिस्से मुझसे कहीं बेहतर programmers ने बनाए थे
यह KEGS या AppleWin से ज्यादा accurate है और ज्यादा peripherals भी संभालता है, लेकिन कम user-friendly है
शायद इसी वजह से, अब तक डाली गई हर floppy image तुरंत eject हो गई, और Mac II के साथ compatible बताई गई 800K System 7.1.1 disk भी ऐसी ही रही
Snow की potential बड़ी है और इसमें लगी मेहनत का सम्मान है, लेकिन सच कहूं तो अब तक Mac emulation का landscape पहले से बहुत अलग नहीं लगता। कई emulators emulated hardware और supported features की असमान product matrix देते हैं, बहुत सारी प्रक्रियाएं और पुराने Mac internals की पहले से जानकारी चाहिए होती है, और स्थिति भविष्य के वादे जैसी दिखती है
https://wiki.mamedev.org/index.php/Driver:Mac_68K
Accuracy की वजह से शायद BasiliskII की powerful features इसमें नहीं होंगी। BasiliskII OS/ROM को patch करके ultra-high resolution और host file system व network के साथ लगभग seamless integration जोड़ता है
अफ़सोस है कि Basilisk, शायद अपनी inaccurate लेकिन powerful features की वजह से, काफ़ी unstable है। जब ठीक से चलता है तो इस्तेमाल करना वाकई बहुत pleasant होता है
मैंने Basilisk का patch code देखा था; वह इतना complex नहीं था, और Basilisk internal code, Executor, MACE आदि में Toolbox के कुछ हिस्सों की कई reimplementations भी हैं
Port करने में कुछ काम लगेगा, लेकिन कुल मिलाकर यह code की direct translation और test-based additions जैसा होगा
ROM कैसे ढूंढ सकते हैं? Google पर मिले sites से कुछ download किए, लेकिन emulator हमेशा “Unknown or unsupported ROM file” कहता है। usable ROM file कहां से मिल सकती है?
कॉलेज graduation के तुरंत बाद शुरुआती दौर में किया गया मेरा काफी काम Mac format Bernoulli disks के ढेर में रखा है
software चलाने के लिए ADB dongle चाहिए, इसलिए actual hardware चाहिए। सोच रहा हूं कि क्या कोई ADB-USB adapter ऐसा होगा जिसे emulator में map किया जा सके
emulator में raw passthrough के लिए शायद custom firmware लिखना पड़ेगा। शायद software को crack करना ज्यादा आसान हो सकता है
अगर data valuable है, तो देर होने से पहले check कर लेना बेहतर है
आसानी से उपलब्ध standard Mac OS 7.1 इंस्टॉलेशन डिस्क और Mac Plus ROM से लोड करके देखा, लेकिन Drive 0 से डिस्क eject हो जाती है
Mini vMac चल रहा है, यह देखकर लगता है कि अभी सुधार की जरूरत है
SE, II आदि के लिए HD20 support का “लागू नहीं” दिखना हैरान करने वाला है। मेरी जानकारी में II को छोड़कर सूची के सभी models के ROM में HD20 boot support है
असली Mac SE पर भी HD20 emulator इस्तेमाल कर रहा हूं
मनचाहे size की disk image को Mac emulator और वास्तविक floppy emulator, दोनों में ले जाने के सबसे सुविधाजनक तरीकों में से एक है
यह Rust में फिर से implement किया गया 68K emulator है, इसलिए इसका C में बने मशहूर CPU cores Musashi या UAE code से कोई shared हिस्सा नहीं है
क्या Mac को भी Lisa की तरह hardware की cycle-accurate emulation चाहिए? lisaem इस्तेमाल करके देखा और Qemu पर भी experiment किया, लेकिन Lisa OS hardware timing को लेकर ऐसी assumptions करता है जिन्हें Qemu पूरा नहीं कर पाता
Apple II में इस्तेमाल होने वाली वही cycle-accurate code तकनीक Mac में भी इस्तेमाल हुई थी
डिस्क पर लिखते समय cursor कभी-कभी रुक जाने की वजह भी यही है। Mac में cursor को भी track करने वाला 60Hz interrupt timer है, लेकिन write operation के दौरान उसे बंद करना पड़ता है
Folklore.org पर Andy Hertzfeld के लेख में भी इसका संक्षिप्त जिक्र है:
सचमुच असली मशीन जैसा feel देता है और काम शानदार है। क्या इसे Atari ST emulation के लिए भी इस्तेमाल किया जा सकता है?
Clock Signal(CLK) भी है। इसे “Acorn Electron और Archimedes, Amstrad CPC, Apple II/II+/IIe और शुरुआती Macintosh, Atari 2600 और ST, ColecoVision, Enterprise 64/128, Commodore Vic-20 और Amiga, MSX 1/2, Oric 1/Atmos, शुरुआती PC compatibles, Sega Master System, Sinclair ZX80/81 और ZX Spectrum के लिए latency से नफरत करने वाला emulator” बताया गया है: https://github.com/TomHarte/CLK