RyujinX - Open Source untuk Emulator Nintendo Switch
(ryujinx.org)- Emulator Nintendo Switch open source yang ditulis dengan C#, dengan tujuan menghadirkan akurasi dan performa tinggi serta antarmuka yang ramah pengguna
- Dimulai pada 2017 oleh satu orang pengembang, kini menjadi proyek yang ditulis ulang sepenuhnya dari nol dengan tim inti dan puluhan kontributor
- Dukungan lintas platform yang berjalan di sistem berbasis Windows 10/11, macOS, Linux
- Telah diuji pada lebih dari 4.050 judul, dan sekitar 3.400 di antaranya dinilai berada pada tingkat dapat dimainkan
- Kode sumbernya dipublikasikan di GitHub sehingga siapa pun dapat mengakses dan berkontribusi
Gambaran Proyek
- Emulator Nintendo Switch open source yang ditulis dengan C#, dibuat oleh pengembang gdkchan
- Tujuannya adalah akurasi dan performa yang unggul, antarmuka yang ramah pengguna, serta penyediaan build yang konsisten
- Dimulai pada 2017 sebagai proyek satu pengembang, kini dikembangkan bersama oleh tim inti yang andal dan puluhan kontributor sebagai proyek yang ditulis ulang sepenuhnya dari nol (Written from scratch)
Fitur Utama
-
Open source
- Kode sumber emulator dipublikasikan di GitHub
-
Lintas platform
- Saat ini tersedia di sistem berbasis Windows 10/11, macOS, Linux
-
Kompatibilitas
- Telah diuji pada lebih dari 4.050 judul, dan sekitar 3.400 di antaranya dinilai berada pada tingkat dapat dimainkan (playable)
-
Dukungan
- Dukungan serta interaksi dengan pengguna emulasi Switch dan pengembang tim tersedia melalui server Discord Ryujinx
Asal Nama
- Diucapkan Ree-You-Jinx, berasal dari "Ryujin", dewa laut sekaligus naga dalam mitologi
- Bagian NX pada nama diambil dari codename konsol Switch
1 komentar
Komentar Hacker News
Saya penasaran, jalur karier seperti apa yang harus ditempuh untuk membuat sesuatu seperti ini
Apakah cukup dengan meretas pada malam hari dan akhir pekan selama 2 tahun penuh? Sepertinya tidak ada orang yang dibayar untuk melakukan pekerjaan seperti ini, dan bidang ini tampak membutuhkan pengetahuan yang sangat mendalam yang mungkin juga tidak terdokumentasi dengan baik karena masalah hukum
Saya putus kuliah karena masalah kesehatan dan mendapat “kesempatan” untuk menerima tunjangan disabilitas seumur hidup; saya menerimanya dan terus memprogram sebagai hobi. Selama itu saya bertemu banyak programmer hobi secara online yang tidak punya pekerjaan atau sedang berhenti kuliah sementara dan ingin bekerja nanti
Karena tidak mengenal orang di dunia nyata yang tertarik pada pemrograman, saya merasa kesepian lalu mencari situs meetup dan mulai menghadiri acara. Teman-teman yang saya temui di sana menyarankan saya mencoba bekerja sebagai programmer profesional; saya mencobanya, dan sekarang sudah 5 tahun saya bekerja di bidang ini dan menikmatinya
Kalau dipikir kembali, saya tahu ada bidang profesional, tetapi saya mengira itu hanya tempat bagi programmer berpendidikan dan berpengalaman, jadi tidak pernah terpikir bahwa saya bisa menjadi bagian darinya
Kesulitan saat masuk adalah saya terlalu terspesialisasi pada bidang tertentu, sementara industri menuntut kemampuan yang lebih umum dan spesialisasi lain. Untungnya sejak awal saya bertemu orang-orang dengan minat serupa seperti pengembangan game engine dan rendering grafis, yang membantu saya memahami lanskap industri profesional
Sampai sekarang saya masih merasa puas mengerjakan proyek hobi di waktu luang. Karena pekerjaan dan keluarga, waktu saya tidak sebanyak dulu, tetapi sesekali saya tetap menyempatkannya
Saya cukup banyak melakukan reverse engineering konsol dan pengembangan software untuk perangkat konsol, terutama pengembangan GBA dan NDS, serta sedikit reverse engineering SMS dan Genesis. Itu termasuk pekerjaan paling menyenangkan yang pernah saya lakukan sebagai developer. Namun, dibutuhkan ketekunan luar biasa untuk menerobos hambatan yang tak terelakkan
Percaya atau tidak, penulis utama mesin translasi ARM yang digunakan di emulator Switch besar lainnya adalah seorang dokter. Ia kadang menyebut dirinya “white mage di dunia nyata”
Diperlukan keterampilan dari banyak bidang, dan insinyur hardware, pakar reverse engineering, penulis dokumentasi yang teliti, insinyur software terspesialisasi, dan lainnya membangun di atas pekerjaan satu sama lain
Ada juga proyek satu orang, tetapi biasanya terbatas pada hardware lama, dan tetap memanfaatkan dokumentasi dari berbagai sumber. Bahkan wiki nesdev pun dibangun di atas peneliti 6502, reverse engineering pabrikan klon Taiwan, pekerjaan decap, emulator NES lama, dan tumpukan dokumentasi yang sudah ada
Saat itu saya masih remaja dan hanya tahu sedikit C serta kode ARM, sama sekali tidak punya pengetahuan hardware atau x86. PC pada dasarnya cukup terdokumentasi dengan baik dan ada emulator lain untuk dibandingkan, tetapi ketika saya tidak paham dan beberapa buku yang saya punya tidak membantu, saya hanya bisa bereksperimen. Saya menulis sedikit kode lalu melihat reaksinya; biasanya crash, dan sesekali seluruh komputer berhenti total
Banyak bagiannya adalah membangun model mental musuh. Dalam kasus saya, itu adalah boot awal Windows NT dan inisialisasi DirectDraw, dan saya menulis kode yang membuatnya maju selangkah demi selangkah. Pekerjaannya selalu lambat, tetapi ketika menemukan petunjuk, rasanya juga terapeutik
Jika berhasil tepat, imbalannya datang tiba-tiba. Sebuah dunia asing berjalan di tempat yang seharusnya tidak bisa, seperti ikan yang berenang di atas pohon. Saya ingin melakukan hal seperti ini lebih banyak lagi
Emulator awal harus mengemulasikan hardware konsol awal yang sangat unik
Konsol zaman sekarang tampak cukup mirip dengan komputer konsumen, dan saya mengira Switch pada dasarnya seperti Nvidia Jetson
Apakah emulasi saat ini lebih mirip Wine, yaitu menyediakan API yang diperlukan dan menjalankannya di mesin virtual, atau emulasi hardware sebenarnya masih tetap diperlukan?
API grafis yang digunakan game biasanya mengekspos berbagai detail hardware, sehingga game dapat disetel secara halus untuk menarik performa maksimal dari hardware tersebut. Menerjemahkan panggilan API yang spesifik hardware seperti ini ke OpenGL/Direct3D/Vulkan/Metal membutuhkan banyak pekerjaan
Namun di sistem ARM native, kode CPU bisa dijalankan hampir apa adanya. Skyline yang dulu dikembangkan untuk Android lalu dihentikan sudah melakukan itu, dan tampaknya Yuzu juga berencana mengimplementasikan fitur ini ke depannya
Masalah yang lebih besar adalah GPU. Meski itu GPU Nvidia Maxwell, Switch memakai API kustom khusus Switch dengan nama internal NVN, sehingga lapisan translasi penuh, termasuk recompilation shader, tetap diperlukan
Saya memainkan Breath of the Wild dan Mario Kart dengan ini di Macbook Pro M1 menggunakan kontroler Xbox
Saya dan anak-anak sangat menyukainya
Bagi saya, perangkat itu sangat unggul dalam dua penggunaan. Pertama, ketika seluruh keluarga memainkan game Nintendo. Semua game Nintendo dirancang dengan sangat cermat agar 4 orang masing-masing memegang kontroler kecil dan melewati alur seperti memilih karakter serta mengatur opsi sebelum mulai bermain
Kedua, ketika bermain dalam mode portabel/terpisah. Ada kesenangan tersendiri saat memainkannya di tangan, dan berbeda dari tablet, ada kontrol fisik. Sebagian besar gamenya jauh lebih baik daripada game iPad rata-rata; lebih tepatnya, game match-3 atau clicker tanpa makna tidak semudah itu naik ke peringkat atas seperti di iPad
Saya tidak menyangka C# akan cocok untuk penggunaan seperti ini, tapi kelihatannya bagus
Menurut saya ini pendekatan yang cukup inovatif untuk emulasi
Dan di Apple Silicon, ia menggunakan hypervisor untuk menjalankan instruksi Arm64v8 milik Switch secara native
https://blog.ryujinx.org/the-impossible-port-macos/
Berbagai alat untuk memungkinkan manajemen dan manipulasi memori yang sangat low-level terus ditambahkan, dan karena bisa berjalan di banyak platform atau menghasilkan kode native, ini menarik. Menulisnya juga menyenangkan
C# merevolusi dunia UO sekitar 20 tahun lalu, dan menyeimbangkan kesederhanaan, kejelasan, serta performa dengan baik
https://www.runuo.net/
https://github.com/ClassicUO/ClassicUO
Sial, seharusnya jangan memikirkan UO. Sekarang rasanya sedih dan tua
Kira-kira C/C++ berada di urutan pertama, dan dalam kasus ini keduanya benar-benar sulit dibedakan. Codebase yang murni hanya memakai salah satunya jarang ada. Berikutnya Rust, sekitar peringkat 3–4 untuk emulator hobi, dan bisa lebih tinggi untuk proyek serius. Setelah itu kira-kira C# dan Java
JavaScript dan Python sangat umum di proyek hobi, tetapi biasanya menjadi pilihan pengecualian dalam codebase serius. WASM bisa dianggap sebagai pengecualian
https://github.com/TASEmulators/BizHawk
Agak menyebalkan bahwa Irdeto, pembuat Denuvo DRM yang terkenal buruk, membuat produk yang secara khusus menargetkan emulator Switch
Padahal emulator itu sendiri legal
Tidak banyak orang yang melakukan dump game mereka sendiri
Saya sudah mencoba keduanya, tetapi saat memainkan Tears of the Kingdom saya lebih memilih Yuzu: https://yuzu-emu.org/
Namun keduanya sama-sama hebat, dan laju pengembangan kedua proyek itu cepat, jadi kesan yang saya bentuk awal tahun ini mungkin sudah usang
Ada panduan berguna tentang cara menggunakannya di sini: https://github.com/Abd-007/Switch-Emulators-Guide/blob/main/...
https://yuzu-emu.org/entry/yuzu-android/
Setidaknya di desktop ada program early access lewat Patreon. Namun bisa juga mendapatkannya di sini: https://pineappleea.github.io/
Skyline berjalan di Android, tetapi saya belum pernah berhasil menjalankannya dengan baik di perangkat mana pun. Pengembangannya sudah tidak berlanjut
https://skyline-emu.one/
Saya justru sebaliknya; seingat saya kalau punya perangkat dengan spesifikasi cukup baru, pengaturan Ryujinx jauh lebih cepat
Ryujinx adalah salah satu proyek C# paling mengesankan yang pernah saya lihat
Yang satunya lagi Roslyn
Apakah ada cara untuk memainkan game dengan ini secara legal kalau tidak punya dump langsung dari Switch sendiri?
Bisakah membeli game Switch lewat browser web?
Switch yang dibeli baru hampir pasti V2 yang sudah dipatch, dan Switch Lite serta OLED juga tidak bisa di-jailbreak tanpa menyolder modchip
Namun jika Anda memiliki gamenya, apakah penting bagaimana cara Anda mendapatkan ROM-nya?
https://www.nintendo.com/store/games/nintendo-switch-games/#...
Namun tanpa Switch, Anda tidak bisa mengunduh atau melakukan dump
Saya suka Yuzu maupun Ryujinx
Menakjubkan bahwa keduanya bisa memberikan pengalaman yang lebih baik daripada konsol native. Namun berkat Denuvo, sepertinya pesta ini akan segera berakhir
Sejauh ini, klaim Denuvo bahwa mereka akan memblokir emulasi hanyalah klaim. Kalaupun benar-benar memblokirnya, orang-orang punya waktu tak terbatas untuk meneliti cara mengakalinya
Mengapa Nintendo tidak merilis gimnya di platform lain?
Saya ingin mencoba Zelda, tetapi tidak akan membeli konsol hanya demi satu gim
Saya tidak terlalu ingin membelanya, tetapi untuk memahami sikap mereka saat ini, perlu melihat kejatuhan pasar gim video Amerika Utara pada 1983. Ketika segala macam sampah dirilis sebagai gim, seluruh pasar gim video runtuh, dan konsumen kehilangan kepercayaan pada platform berupa konsol gim tertentu. Sebagai gantinya, jika membeli komputer rumahan, ada gim dan juga kegunaan lain
NES adalah kebalikannya. Ada ekosistem tertutup Nintendo dan banyak pengembangan gim first-party, dan pendekatan ini berhasil, membuat perusahaan itu kaya serta menjadi pemain utama di pasar gim video. Mengapa membuang cara yang masih berfungsi setelah hampir 40 tahun?
Kalau saya bisa memainkannya di laptop dengan layar dan speaker yang lebih baik, saya hanya akan membayar 60 dolar. Selain itu, sekarang kemungkinan saya membeli gim Nintendo lain juga lebih besar agar perangkat baru itu lebih berguna. Kalau saya pelaku bisnis, sepertinya saya akan memilih opsi dengan pendapatan 7 kali lebih besar
Dibandingkan PS4/5 dan Xbox Series X dari generasi yang sama, Nintendo Switch punya performa yang sangat rendah, tetapi memiliki keunggulan besar sebagai konsol portabel/perjalanan yang ideal. Konsol Sony dan Microsoft biasanya bisa menghasilkan frame per detik yang lebih tinggi atau grafis yang lebih baik dan umumnya condong ke sisi grafis, sementara Switch sangat terbatas karena harus menyeimbangkan form factor dan daya tahan baterai. Sebab tidak ada gunanya perangkat portabel kalau hanya bisa dipakai bermain 30 menit
Sebagian besar basis pengguna, termasuk orang-orang yang ingin memakai emulator seperti ini secara legal, kemungkinan besar akan lebih memilih konsol lain atau PC/Mac dari sudut pandang performa murni
Selain itu, jika dijual di platform lain, terutama untuk gim studio internal, pendapatan per kopi tampaknya akan lebih rendah daripada menjualnya di platform sendiri
Jika mempertimbangkan hal-hal ini, rilis di platform lain akan cukup besar menggerus aliran pendapatan
Kalau tidak, mereka tidak akan menambal bug duplikasi item yang hampir mustahil ditemui secara kebetulan, dan sejak lama mereka juga akan mengizinkan pengubahan kontrol yang merupakan fitur dasar. Sebaliknya, di gim Nintendo Anda hanya bisa mengontrol dengan cara yang dimaksudkan dan sudah di-playtest. Mereka juga sudah lama cukup merepotkan terhadap konten yang mencakup streaming, ulasan, dan video gameplay, dan sampai taraf tertentu masih begitu sekarang
Namun bagi banyak orang, ini bukan hanya soal satu gim. Nintendo punya cukup banyak eksklusif sukses seperti Zelda, Mario Kart, Smash, beberapa gim aksi lompat Mario yang bisa dibagi menjadi judul utama 3D dan judul pelengkap 2D, Splatoon, Mario Party, Fire Emblem, Xenoblade, Kirby, dan lainnya
Pada kenyataannya, biasanya Anda akan punya setidaknya sekitar 10 gim eksklusif yang berkualitas tinggi dan menyenangkan, meski mahal. Itu bahkan jika mengesampingkan fakta bahwa Wii U gagal sehingga menimbulkan hasil aneh seperti Mario Kart 8 dirilis ulang dalam edisi yang mencakup DLC dan kemudian mendapat expansion pass besar
Jika ingin memainkan Zelda, Anda harus membayar Nintendo setidaknya 260 dolar. Jika ingin memainkannya dengan sesuatu yang lebih baik daripada Switch Lite, biayanya bertambah 100 dolar
Berbeda dari Sony atau Microsoft, Nintendo benar-benar menghasilkan laba bukan hanya dari penjualan gim, tetapi juga dari penjualan perangkat keras