3 पॉइंट द्वारा GN⁺ 2025-06-28 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Snow एक ओपन सोर्स एमुलेटर है जो Motorola 680x0-आधारित Macintosh के हार्डवेयर व्यवहार को यथासंभव वास्तविक मशीन के करीब पुनर्निर्मित करता है
  • यह ग्राफिकल यूज़र इंटरफ़ेस (GUI) और मज़बूत डिबगिंग फीचर्स प्रदान करता है
  • मौजूदा एमुलेटरों से अलग, यह ROM patch या system call interception को न्यूनतम रखने वाला तरीका अपनाता है
  • यह Macintosh 128K/512K/Plus/SE/Classic/II मॉडलों को सपोर्ट करता है
  • इसे Rust-आधारित रूप में विकसित किया गया है, और यह विभिन्न ऑपरेटिंग सिस्टम्स पर build और download के लिए उपलब्ध है

परियोजना अवलोकन

  • Snow एक ऐसा एमुलेटर है जो क्लासिक Macintosh (680x0 श्रृंखला) कंप्यूटरों को सॉफ़्टवेयर के ज़रिए पुनर्निर्मित करता है
  • उपयोगकर्ता ग्राफिकल इंटरफ़ेस के माध्यम से इसे लगभग वास्तविक Mac की तरह चला सकते हैं
  • इसके डिबगिंग फीचर्स समृद्ध हैं, इसलिए यह डेवलपमेंट और विश्लेषण दोनों के लिए उपयोगी है

कार्यप्रणाली और विशेषताएँ

  • Snow का लक्ष्य जहाँ तक संभव हो हार्डवेयर स्तर (low-level) पर पूर्ण एमुलेशन प्रदान करना है
    • यानी ROM को patch करने या system call को bypass करने के सामान्य तरीकों के बजाय, यह वास्तविक हार्डवेयर की तरह व्यवहार करता है
  • आधिकारिक रूप से समर्थित मॉडल:
    • Macintosh 128K
    • Macintosh 512K
    • Macintosh Plus
    • Macintosh SE
    • Macintosh Classic
    • Macintosh II
  • इसे Rust भाषा में लागू किया गया है, जिससे दक्षता और सुरक्षा पर ज़ोर दिया गया है
  • इसे ओपन सोर्स MIT लाइसेंस के तहत जारी किया गया है

अनुभव और दस्तावेज़

  • यह वेब ब्राउज़र में चलने वाला एक सीमित demo version प्रदान करता है
    • हालांकि, इसमें पूरे सॉफ़्टवेयर की सभी सुविधाएँ, खासकर GUI आदि, उपलब्ध नहीं हैं
  • इंस्टॉलेशन और उपयोग के विस्तृत तरीके ऑनलाइन दस्तावेज़ में देखे जा सकते हैं

डाउनलोड जानकारी

  • फिलहाल केवल नवीनतम development version (bleeding edge build) ही स्वचालित रूप से उपलब्ध कराया जा रहा है
    • Windows 10 या बाद का संस्करण (x86 64-बिट)
    • macOS 11.7 (Big Sur) या बाद का संस्करण (universal)
    • Linux (Ubuntu 24.04, x86 64-बिट और ARM64)
  • अलग-अलग ऑपरेटिंग सिस्टम्स के लिए तुरंत डाउनलोड किए जा सकने वाले build files वितरित किए जा रहे हैं

संपर्क और भागीदारी

  • GitHub repository के माध्यम से issue दर्ज किए जा सकते हैं और योगदान भी किया जा सकता है

1 टिप्पणियां

 
GN⁺ 2025-06-28
Hacker News टिप्पणियाँ
  • क्लासिक Mac सिस्टम के लिए पोर्टेबल और user-friendly हार्डवेयर-लेवल emulator का बड़ा महत्व क्यों है, इस संदर्भ में 2020 की यह ब्लॉग पोस्ट साझा की गई: https://invisibleup.com/articles/30/ गेम कंसोल के लिए Nestopia, bsnes, Dolphin, Duckstation जैसे बेहतरीन emulator बहुत पहले से मौजूद रहे हैं, जबकि PC के लिए VMWare, VirtualBox जैसे virtualization सिस्टम आम ज़रूरतें पूरी करते रहे, और हाल में 86Box, MartyPC जैसे high-accuracy emulator भी सामने आए हैं। Commodore 64 के लिए VICE, Amiga के लिए WinUAE, Apple II के लिए KEGS और AppleWin जैसे उच्च-गुणवत्ता वाले emulator हैं, लेकिन Mac की तरफ Basilisk II जैसे emulator ज़्यादा रहे जो high-level abstraction के काफ़ी करीब हैं और बस मोटे तौर पर मिलता-जुलता व्यवहार दोहराते हैं।

    • compatibility के मामले में काफ़ी कमज़ोर होने के बावजूद Executor नाम का एक विकल्प भी था: https://en.wikipedia.org/wiki/Executor_(software) एक demo भी है जिसमें browser MS-DOS को emulate करता है, और उसके ऊपर Executor/DOS के जरिए Macintosh का solitaire गेम चलता है: https://archive.org/details/executor Executor/DOS के अलावा 680x0 processor वाले Sun 3 workstation के लिए एक private version और NEXTSTEP environment के लिए Executor/NEXTSTEP भी था। यह भी बताया गया कि Executor ने Apple की intellectual property का बिल्कुल उपयोग नहीं किया, इसलिए compatibility सबसे कम थी; ROM और system software के सारे replacements clean-room तरीके से नए सिरे से लिखे गए थे। Executor के पुराने versions में gcc-specific extensions इस्तेमाल हुए थे, इसलिए आज Linux पर build करना मुश्किल या असंभव हो सकता है। टिप्पणी करने वाले ने बताया कि उन्होंने Executor प्रोजेक्ट के शुरुआती versions खुद विकसित किए थे, जबकि तेज़ 68k emulator और color subsystem जैसी चीज़ें उनसे कहीं बेहतर programmers ने बनाई थीं।

    • कहा गया कि लेख की बात तथ्यात्मक रूप से सही है, लेकिन यह दुनिया भर की free-contribution community के प्रयासों को कुछ ज़्यादा ही कमतर दिखाता है।

    • इस बात पर ज़ोर दिया गया कि MAME भी hardware level पर Macintosh और Apple II को emulate करता है; यह KEGS और AppleWin से ज़्यादा accurate है और peripherals का support भी अधिक है, लेकिन user-friendliness में पीछे है।

    • Macintosh II FDHD emulator चलाकर देखने पर menu में सिर्फ 400K/800K floppy load करने का संदेश दिखा, जबकि Snow manual में साफ़ लिखा है कि यह दो SuperDrive support करता है: https://docs.snowemu.com/manual/media/floppies शायद इसी वजह से अब तक दी गई सारी floppy images तुरंत eject हो गईं, यहाँ तक कि Mac II-compatible सिस्टम के लिए 800K System 7.1.1 disk भी नहीं पहचानी गई। Snow में क्षमता काफ़ी दिखती है और उसके प्रयास की सराहना है, लेकिन Mac emulation की दुनिया अभी भी ऐसी है जहाँ अलग-अलग emulator अलग hardware और features को असमान रूप से support करते हैं, तरह-तरह के workaround और पुराने Mac internals का पूर्वज्ञान अब भी चाहिए, इसलिए अभी यह भविष्य के वादों से भरा हुआ लगता है।

    • यह जानकारी भी साझा की गई कि MAME 68k-आधारित Macintosh को भी कुछ हद तक support करता है: https://wiki.mamedev.org/index.php/Driver:Mac_68K

  • emulator accuracy की वजह से लगता है कि शायद BasiliskII की कुछ निर्णायक सुविधाएँ इसमें नहीं होंगी। BasiliskII OS और ROM patches के ज़रिए ultra-high resolution support, host file system और network के साथ ज़्यादातर seamless integration जैसी कई सुविधाएँ देता है। हालांकि यह थोड़ा ढीला या inaccurate हो सकता है, लेकिन user experience में एक अलग तरह की polish है, और जब यह सही चलता है तो सच में बहुत आरामदायक usability देता है।

    • अगर emulator accurate हो और codebase साफ़-सुथरा हो, तो ऐसे patches या features ऊपर से जोड़ना आसान लगना चाहिए। Basilisk के patch code को खुद देखने पर वह वास्तव में इतना जटिल नहीं लगा, और Executor (जिसके लेखक इस thread में मौजूद हैं), MACE आदि में Toolbox के partial reimplementation के उदाहरण भी हैं। Porting का काम छोटा नहीं होगा, लेकिन लगता है कि मूल code का अधिकांश हिस्सा लगभग ज्यों-का-त्यों लाकर test infrastructure जोड़ना काफ़ी हो सकता है।
  • Mac के लिए ROM files पाने का तरीका पूछा गया। Google पर मिले कुछ sites से कई files डाउनलोड कीं, लेकिन emulator लगातार "unknown or unsupported ROM file" error देता रहा। उपयोगी ROM ढूँढ़ने का कोई अच्छा तरीका पूछा गया।

    • https://macintoshgarden.org/ को हमेशा भरोसेमंद और सबसे अच्छा source बताया गया।

    • यह बात काफ़ी बेतुकी लगी कि Apple आज भी ऐसे पुराने ROM अपलोड करने वालों पर मुकदमा कर सकता है।

    • यह निजी अनुभव भी साझा किया गया कि नीचे वाले archive की ROM files काम करती हैं: https://archive.org/details/mac_rom_archive_-_as_of_8-19-2011

  • किसी की शुरुआती post-college रचनाएँ Mac-format Bernoulli disks में संग्रहीत हैं। उस software को चलाने के लिए ADB dongle अनिवार्य है, इसलिए physical hardware की ज़रूरत पड़ती है। सवाल यह था कि क्या कोई ADB-USB adapter ऐसा है जिसे map करके emulator से जोड़ा जा सके।

    • अब तक जितने ADB-USB adapters की जानकारी है, वे सिर्फ mouse और keyboard support करते हैं, और उनका internal firmware केवल USB HID में map कर सकता है। पूरी pass-through के लिए custom firmware चाहिए होगा; बल्कि शायद उस software की copy protection को hack करना ज़्यादा आसान हो।

    • अगर अभी तक backup नहीं लिया है, तो data loss का जोखिम है; अगर चीज़ें क़ीमती हैं तो जितनी जल्दी हो सके जाँच लेने की सलाह दी गई।

    • यह भी कहा गया कि जिन लोगों के पास काम करने वाला Bernoulli drive होता है, उनके पास अक्सर सही पुराना Mac hardware भी साथ में होता है।

    • शायद यह उत्पाद मदद कर सकता है: https://www.bigmessowires.com/usb-wombat/

  • यह 68K emulator Rust में reimplement किया गया है, और इसमें Musashi या UAE जैसे प्रसिद्ध C-language आधारित CPU code का बिल्कुल उपयोग नहीं किया गया।

  • आमतौर पर आसानी से मिलने वाली Mac OS 7.1 install disk और Mac Plus ROM file से boot करने की कोशिश की गई, लेकिन drive 0 बार-बार disk eject कर देता है। Mini vMac ठीक चलता है, इसलिए अभी सुधार की ज़रूरत महसूस होती है।

  • यह अजीब लगा कि Mac SE या II आदि के लिए HD20 support को "not applicable" दिखाया गया है। हर model (II को छोड़कर) में ROM स्तर पर HD20 boot support मौजूद है। एक व्यक्ति ने बताया कि वह अपने Mac SE पर HD20 emulator इस्तेमाल कर रहा है, और यह disk images के कई formats को Mac और floppy emulator दोनों पर आसानी से लागू करने का बहुत अच्छा तरीका है।

  • यह सवाल उठा कि Lisa की तरह क्या Mac को भी hardware की "cycle accuracy" चाहिए। Lisa के मामले में OS hardware timing मानकर चलता है, जिसे Qemu जैसे emulator पूरा नहीं कर पाते।

    • शुरुआती Mac में IWM (disk II controller को समेटने वाली chip) इस्तेमाल होती थी, और Apple II की तरह cycle-matched code का उपयोग किया जाता था। Cursor movement का अचानक रुक जाना इसलिए होता है क्योंकि 60Hz interrupt timer को disk write के दौरान बंद होना पड़ता है। Andy Hertzfeld ने यह किस्सा Folklore.org पर लिखा था: https://www.folklore.org/Nybbles.html Apple II में इस्तेमाल हुई अजीब disk copy-protection तकनीकें—जैसे spiral tracks, अलग-अलग size के sectors, और तरह-तरह की nibbilization methods—सैद्धांतिक रूप से Mac पर भी संभव थीं; किसी ने जिज्ञासा जताई कि क्या वास्तव में उनका उपयोग हुआ था।
  • किसी ने कहा कि यह implementation सचमुच बहुत immersive लगती है, और पूछा कि क्या Atari ST emulation की भी उम्मीद की जा सकती है।

    • जवाब में पहले से मौजूद बहुत उच्च-स्तरीय Atari ST emulator Hatari प्रोजेक्ट का ज़िक्र किया गया: https://github.com/hatari/hatari साथ ही Clock Signal (CLK) नाम के low-latency emulator का भी, जो Acorn, Amstrad, Apple II/II+/IIe, Atari ST और 2600 जैसे कई classic systems को व्यापक रूप से cover करता है: https://github.com/TomHarte/CLK