RyujinX - Nintendo Switch emulator का open source
(ryujinx.org)- C# में लिखा गया open-source Nintendo Switch emulator, जिसका लक्ष्य उच्च accuracy और performance के साथ user-friendly interface देना है
- 2017 में एक developer से शुरू हुआ और अब core team व दर्जनों contributors के साथ विकसित हो रहा scratch से लिखा गया project है
- Windows 10/11, macOS, Linux आधारित systems पर चलने वाला cross-platform support
- 4,050 से ज़्यादा titles पर test किया गया है, जिनमें से लगभग 3,400 को playable level का माना गया है
- Source code GitHub पर public है, इसलिए कोई भी इसे access कर सकता है और contribute कर सकता है
Project overview
- C# में लिखा गया open-source Nintendo Switch emulator, developer gdkchan द्वारा बनाया गया
- लक्ष्य है बेहतरीन accuracy और performance, user-friendly interface और consistent builds उपलब्ध कराना
- 2017 में single developer के रूप में शुरू हुआ; अब सक्षम core team और दर्जनों contributors के साथ विकसित हो रहा scratch से लिखा गया (Written from scratch) project
मुख्य विशेषताएँ
-
Open source
- Emulator का source code GitHub पर public है
-
Cross-platform
- फिलहाल Windows 10/11, macOS, Linux आधारित systems पर उपलब्ध
-
Compatibility
- 4,050 से अधिक titles पर test किया गया है, जिनमें से लगभग 3,400 को playable level का माना गया है
-
Support
- Ryujinx Discord server के ज़रिए support मिल सकता है और Switch emulation users व team developers से बातचीत की जा सकती है
नाम की उत्पत्ति
- उच्चारण Ree-You-Jinx है; यह पौराणिक समुद्र देवता और dragon "Ryujin" से लिया गया है
- नाम का NX हिस्सा Switch console के codename से लिया गया है
1 टिप्पणियां
Hacker News की राय
ऐसी चीज़ बनाने के लिए किस career path से गुजरना पड़ता है, यह जानने की जिज्ञासा है
क्या बस पूरे 2 साल रातों और weekends में hacking करनी होती है? नहीं लगता कि लोग ऐसी चीज़ों के लिए पैसे लेकर काम करते होंगे, लेकिन यह ऐसा क्षेत्र दिखता है जिसमें बेहद गहरी जानकारी चाहिए, जो कानूनी मुद्दों की वजह से शायद ठीक से documented भी न हो
medical issue के कारण university छोड़ दी थी और जीवन भर disability benefit पाने का “मौका” मिला, मैंने उसे स्वीकार किया और hobby के तौर पर programming जारी रखी। इस दौरान online ऐसे कई hobby programmers मिले जिनके पास job नहीं थी या जो कुछ समय के लिए पढ़ाई से break लेकर बाद में नौकरी करना चाहते थे
असल जिंदगी में programming में रुचि रखने वाले किसी को नहीं जानता था, इसलिए अकेलापन महसूस हुआ और meetup sites पर events खोजकर जाने लगा। वहाँ मिले दोस्तों ने professional programmer के तौर पर काम करने को कहा, तो कोशिश की और अब 5 साल से इसी क्षेत्र में काम कर रहा हूँ और इसका आनंद ले रहा हूँ
पीछे मुड़कर देखने पर, मुझे पता था कि professional field होती है, लेकिन लगता था कि वहाँ सिर्फ trained और experienced programmers ही जाते हैं, इसलिए कभी सोचा ही नहीं कि मैं उसका हिस्सा बन सकता हूँ
शुरुआत में कठिनाई यह थी कि मैं बहुत किसी खास क्षेत्र में specialized था, जबकि industry को ज्यादा general-purpose क्षमता और अलग specialization चाहिए थे। सौभाग्य से शुरुआत से ही game engine development, graphics rendering जैसी मिलती-जुलती रुचियों वाले लोग मिले, जिन्होंने professional industry landscape समझने में मदद की
आज भी खाली समय में hobby projects करना संतोष देता है, और काम व family की वजह से पहले जितना समय नहीं है, फिर भी कभी-कभी समय निकाल लेता हूँ
console reverse engineering और console devices के लिए software development काफी किया है; मुख्य रूप से GBA और NDS development, और SMS व Genesis reverse engineering भी थोड़ी की है। developer के तौर पर किए कामों में यह वाकई बहुत मजेदार चीज़ों में से है। हालांकि जिन बाधाओं से बचना संभव नहीं, उनसे आगे बढ़ने के लिए जबरदस्त धैर्य चाहिए
यकीन करना मुश्किल होगा, लेकिन दूसरे बड़े Switch emulator में इस्तेमाल होने वाले ARM translation engine के मुख्य लेखक एक doctor हैं। वे खुद कभी-कभी इसे “real-life White Mage” कहते हैं
इसमें कई क्षेत्रों की skills चाहिए होती हैं, और hardware engineers, reverse engineering experts, सावधानी से documentation लिखने वाले, specialized software engineers आदि एक-दूसरे के काम के ऊपर निर्माण करते हैं
solo projects भी दिखते हैं, लेकिन वे आमतौर पर पुराने hardware तक सीमित होते हैं, और फिर भी कई sources के documents का इस्तेमाल करते हैं। nesdev wiki तक 6502 researchers, Taiwanese clone manufacturers की reverse engineering, decap work, पुराने NES emulators और मौजूदा documents के ढेर पर बनी है
तब मैं teenager था और C व ARM code थोड़ा जानता था, लेकिन hardware या x86 की जानकारी बिल्कुल नहीं थी। PC मूल रूप से काफी अच्छी तरह documented था और तुलना के लिए दूसरे emulators भी थे, लेकिन जब कुछ समझ नहीं आता था और मेरे पास मौजूद कुछ किताबें भी मदद नहीं करती थीं, तो बस experiment करना पड़ता था। थोड़ा code लिखता और response देखता; आमतौर पर crash होता, और कभी-कभी पूरा computer freeze हो जाता
इसका बड़ा हिस्सा दुश्मन का mental model बनाने जैसा था। मेरे मामले में Windows NT की early boot और DirectDraw initialization थी, और मैं ऐसा code लिखता जो एक-एक step करके अगले step तक पहुँचाए। काम हमेशा धीमा था, लेकिन जब कोई सुराग मिलता तो therapeutic जैसा लगता था
सही बैठ जाए तो reward अचानक आता है। जहाँ नहीं होना चाहिए वहाँ एक अनजानी दुनिया चलने लगती है, जैसे पेड़ पर मछली तैर रही हो। ऐसा काम और करना चाहता हूँ
शुरुआती emulators को शुरुआती consoles के बेहद अजीब hardware को emulate करना पड़ता था
आजकल के consoles consumer computers जैसे काफी लगते हैं, और मुझे लगा था कि Switch भी मूल रूप से Nvidia Jetson जैसा कुछ है
क्या आज की emulation Wine की तरह जरूरी API provide करके virtual machine में चलाने के ज्यादा करीब है, या अभी भी असली hardware emulation की जरूरत पड़ती है?
games जो graphics API इस्तेमाल करते हैं, वे आमतौर पर hardware की अलग-अलग details expose करते हैं, ताकि game को उस hardware से maximum performance निकालने के लिए fine-tune किया जा सके। ऐसे hardware-specific API calls को OpenGL/Direct3D/Vulkan/Metal में translate करने के लिए बहुत काम चाहिए
लेकिन native ARM systems पर CPU code लगभग जस का तस चलाया जा सकता है। Android के लिए develop होकर बाद में बंद हुए Skyline ने ऐसा किया था, और लगता है Yuzu भी आगे यह feature implement करेगा
बड़ी समस्या GPU है। यह Nvidia Maxwell GPU है, लेकिन Switch-specific custom API, जिसका internal name NVN है, इस्तेमाल करता है, इसलिए shader recompilation सहित पूरी translation layer अभी भी चाहिए
Macbook Pro M1 पर इससे Breath of the Wild और Mario Kart को Xbox controller से खेल रहा हूँ
मेरे बच्चों और मुझे यह बहुत पसंद है
मेरे लिए यह दो use cases में खास तौर पर शानदार है। पहला, जब पूरा परिवार Nintendo games खेलता है। सभी Nintendo games बहुत सोच-समझकर design किए गए हैं ताकि 4 लोग अपने-अपने छोटे controller लेकर game शुरू होने से पहले character selection और option settings जैसे flow से गुजर सकें
दूसरा, portable/detached mode में खेलना। हाथ में पकड़कर खेलने का आनंद है और tablet के विपरीत physical controls हैं। ज्यादातर games औसत iPad game से काफी बेहतर हैं; और ज्यादा सटीक कहें तो match-3 या बेकार clicker games iPad जितनी आसानी से top पर नहीं आ जाते
मैंने नहीं सोचा था कि ऐसे use case के लिए C# इतना फिट बैठेगा, अच्छा लग रहा है
मुझे लगता है कि emulation के लिए यह काफ़ी innovative approach है
और Apple Silicon पर यह hypervisor का इस्तेमाल करके Switch के Arm64v8 instructions को native तरीके से चलाता है
https://blog.ryujinx.org/the-impossible-port-macos/
बहुत low-level memory management और manipulation संभव करने वाले tools लगातार जुड़ रहे हैं, और यह कई platforms पर चल सकता है या native code generate कर सकता है, इसलिए आकर्षक है। लिखने में मज़ा भी आता है
C# ने करीब 20 साल पहले UO world में क्रांति ला दी थी, और simplicity, clarity और performance के बीच उसका balance अच्छा था
https://www.runuo.net/
https://github.com/ClassicUO/ClassicUO
धत्, UO के बारे में नहीं सोचना चाहिए था। अब उदास और बूढ़ा महसूस हो रहा है
मोटे तौर पर C/C++ पहले आते हैं, और इस मामले में दोनों को अलग करना वाकई मुश्किल है। पूरी तरह सिर्फ एक ही side इस्तेमाल करने वाले codebase दुर्लभ हैं। उसके बाद Rust है, जो hobby emulators में शायद तीसरे-चौथे नंबर पर है, और serious projects में इससे आगे हो सकता है। फिर C# और Java जैसे विकल्प आते हैं
JavaScript और Python hobby projects में बहुत आम हैं, लेकिन serious codebase में आम तौर पर असामान्य choice होते हैं। WASM को exception माना जा सकता है
https://github.com/TASEmulators/BizHawk
कुख्यात Denuvo DRM बनाने वाली Irdeto ने Switch emulators को खास तौर पर निशाना बनाने वाला product बनाया है, यह थोड़ा चिढ़ाने वाला है
जबकि emulator अपने आप में legal हैं
अपने games को खुद dump करने वाले लोग ज़्यादा नहीं हैं
मैंने दोनों इस्तेमाल किए हैं, लेकिन Tears of the Kingdom खेलते समय मुझे Yuzu ज़्यादा पसंद है: https://yuzu-emu.org/
फिर भी दोनों शानदार हैं, और दोनों projects की development speed तेज़ है, इसलिए इस साल की शुरुआत में बनी मेरी राय अब तक पुरानी हो चुकी हो सकती है
इसे इस्तेमाल करने के तरीके पर उपयोगी guide यहां है: https://github.com/Abd-007/Switch-Emulators-Guide/blob/main/...
https://yuzu-emu.org/entry/yuzu-android/
कम से कम desktop पर Patreon के जरिए early access program है। हालांकि इसे यहां से भी लिया जा सकता है: https://pineappleea.github.io/
Skyline Android पर चलता है, लेकिन मैं इसे किसी भी device पर ठीक से चला नहीं पाया। अब इसका development बंद हो चुका है
https://skyline-emu.one/
मेरी राय उलटी है; अगर आपके पास काफ़ी नई spec वाली machine है, तो मुझे याद है Ryujinx setup करना कहीं ज़्यादा तेज़ था
Ryujinx उन सबसे impressive C# projects में से एक है जिन्हें मैंने देखा है
दूसरा Roslyn है
अगर Switch से सीधे dump किया हुआ कुछ भी न हो, तो क्या इससे games legally खेलने का कोई तरीका है?
क्या web browser से Switch games खरीदे जा सकते हैं?
नया खरीदा गया Switch लगभग निश्चित रूप से patched V2 होगा, और Switch Lite व OLED को modchip solder किए बिना jailbreak नहीं किया जा सकता
लेकिन अगर आपके पास game का ownership है, तो ROM किस तरीके से मिला यह क्या मायने रखता है?
https://www.nintendo.com/store/games/nintendo-switch-games/#...
हालांकि Switch न हो तो आप उसे download या dump नहीं कर सकते
मुझे Yuzu और Ryujinx दोनों पसंद हैं
यह हैरान करने वाला है कि ये native console से बेहतर experience दे सकते हैं। हालांकि Denuvo की वजह से लगता है यह party जल्द खत्म हो सकती है
अब तक Denuvo ने emulation रोकने की बात सिर्फ दावा ही किया है। अगर वह सच में रोक भी दे, तो लोगों के पास bypass तरीके खोजने के लिए असीमित समय होगा
Nintendo अपने गेम दूसरे प्लेटफॉर्म पर क्यों नहीं लाता?
मैं Zelda खेलना चाहता हूँ, लेकिन सिर्फ एक गेम के लिए console नहीं खरीदूँगा
मैं खास तौर पर इसका बचाव नहीं करना चाहता, लेकिन उसका मौजूदा रवैया समझना हो तो 1983 में उत्तर अमेरिकी वीडियो गेम बाजार के पतन को देखना होगा। जब कोई भी कचरा गेम के रूप में रिलीज़ होने लगा, तो पूरा वीडियो गेम बाजार ढह गया और उपभोक्ताओं ने किसी खास game console जैसे platform पर भरोसा खो दिया। इसके बजाय, अगर वे home computer खरीदते, तो उसमें games भी होते और दूसरे काम भी हो जाते
NES इसका उलटा था। Nintendo का closed ecosystem था और बहुत-से first-party games बनाए गए थे; यह तरीका सफल रहा, कंपनी को अमीर बनाया और उसे वीडियो गेम बाजार का प्रमुख खिलाड़ी बना दिया। लगभग 40 साल बाद भी जो तरीका काम कर रहा है, उसे वह क्यों छोड़ेगा?
अगर मैं इसे बेहतर screen और speakers वाले laptop पर खेल सकता, तो सिर्फ 60 डॉलर देता। ऊपर से अब नए device का उपयोग बढ़ाने के लिए मेरे दूसरे Nintendo games खरीदने की संभावना भी बढ़ गई है। अगर मैं business चलाता, तो शायद 7 गुना revenue वाला विकल्प चुनता
Nintendo Switch उसी generation के PS4/5, Xbox Series X की तुलना में performance में बहुत कमजोर है, लेकिन ultimate portable/travel console होना इसका बड़ा फायदा है। Sony और Microsoft consoles आम तौर पर ज्यादा frames per second या बेहतर graphics दे सकते हैं और अक्सर graphics की तरफ झुके होते हैं, लेकिन Switch को form factor और battery life के बीच balance रखना पड़ता है, इसलिए यह बहुत सीमित है। आखिर portable device होकर अगर सिर्फ 30 मिनट ही game खेला जा सके, तो उसका कोई मतलब नहीं
legal तरीके से ऐसे emulators इस्तेमाल करना चाहने वालों सहित users का बड़ा हिस्सा, pure performance के नजरिए से, दूसरे consoles या PC/Mac को ज्यादा पसंद कर सकता है
साथ ही, दूसरे platforms पर बेचने से, खासकर internal studio games के मामले में, प्रति copy profit अपने platform पर बेचने की तुलना में कम होने की संभावना है
इन बातों को देखते हुए, दूसरे platforms पर release करने से revenue stream काफी हद तक कम हो जाएगी
ऐसा न होता तो वह ऐसे item duplication bug को patch करके बंद नहीं करता जिससे संयोग से टकराना लगभग असंभव था, और बहुत पहले से basic feature रहे control remapping की भी अनुमति देता। इसके बजाय Nintendo games में आप controls सिर्फ उसी तरीके से कर सकते हैं जो intended और playtested है। streaming, reviews और gameplay videos वाले content को लेकर भी वह लंबे समय तक काफी परेशान करने वाला रहा, और कुछ हद तक आज भी है
हालांकि कई लोगों के लिए यह सिर्फ एक game की बात नहीं है। Nintendo के पास काफी सफल exclusives हैं: Zelda, Mario Kart, Smash, कई Mario jumping action games जिन्हें 3D main titles और 2D supplementary titles में बाँटा जा सकता है, Splatoon, Mario Party, Fire Emblem, Xenoblade, Kirby वगैरह
असल में आपके पास कम-से-कम करीब 10 high-quality और enjoyable, लेकिन महंगे exclusive games हो ही जाते हैं। Wii U की नाकामी के कारण Mario Kart 8 को DLC-included version के रूप में फिर से release किया गया और बाद में बड़ा expansion pass जोड़ा गया—ऐसे अजीब नतीजों को अलग रखकर भी यह बात सही है
अगर Zelda खेलना है, तो Nintendo को कम-से-कम 260 डॉलर देने होंगे। Switch Lite से बेहतर किसी चीज पर खेलना है तो 100 डॉलर और लगेंगे
Sony या Microsoft के उलट, Nintendo सिर्फ game sales से नहीं बल्कि hardware sales से भी सचमुच profit कमाता है