5 poin oleh GN⁺ 2023-09-01 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2023-09-01
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

    • Sebelum bekerja di bidang ini, saya sudah hampir 10 tahun mengerjakan proyek-proyek besar, meski mungkin tidak serumit emulator
      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
    • Benar, memang sekadar meretas pada malam hari dan akhir pekan
      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
    • “Meretas pada malam hari dan akhir pekan selama 2 tahun penuh” itu benar
      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”
    • Pengembangan emulator pada umumnya lebih dekat ke bidang hobi
      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
    • Pekerjaan berbayar pertama saya pada 1997 adalah memperluas produk emulator PC untuk komputer desktop ARM, dan mesin itu memiliki koprosesor 486
      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?

    • Memang lebih high-level dibanding dulu, tetapi masalah utamanya adalah GPU
      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
    • Untuk Switch saja, karena memakai CPU ARM, sistem x86 masih tetap membutuhkan emulator ARM
      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

    • Senang mendengar kalian menikmatinya. Mungkin layak mempertimbangkan untuk membeli Switch sungguhan juga
      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
    • Rata-rata frame per detiknya kira-kira berapa?
  • Saya tidak menyangka C# akan cocok untuk penggunaan seperti ini, tapi kelihatannya bagus

    • Setahu saya, Ryujinx memang mengubah kode ARM menjadi .NET IL, lalu .NET melakukan kompilasi JIT menjadi kode mesin
      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/
    • C#, terutama lewat rilis-rilis terbaru, sampai batas tertentu makin berubah menjadi semacam bahasa pemrograman sistem
      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
    • Kalau soal emulator yang ditulis dengan C#, belum pernah dengar RunUO?
      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
    • Sebenarnya C# adalah pilihan yang cukup umum untuk emulator
      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
    • BizHawk adalah emulator utama untuk membuat speedrun berbantuan alat, dan ditulis dengan C#
      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

    • Karena sebagian besar pengguna emulator adalah pengguna bajakan
      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

  • 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?

    • Satu-satunya cara adalah punya Switch yang sudah di-jailbreak
      Switch yang dibeli baru hampir pasti V2 yang sudah dipatch, dan Switch Lite serta OLED juga tidak bisa di-jailbreak tanpa menyolder modchip
    • Ini akan bergantung pada yurisdiksi
      Namun jika Anda memiliki gamenya, apakah penting bagaimana cara Anda mendapatkan ROM-nya?
    • Membeli game Switch lewat browser web memang bisa
      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

    • Sepertinya tidak akan begitu
      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

    • Nintendo ya Nintendo, dan ada cukup banyak orang yang membeli konsol demi satu atau beberapa gim, sehingga mereka punya uang untuk terus bersikap seperti Nintendo
      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?
    • Saya membeli Switch OLED dan gimnya untuk memainkan Tears of the Kingdom, totalnya 420 dolar
      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
    • Selain yang sudah dikatakan komentar lain, Nintendo memilih strategi konsol yang berbeda dari Microsoft atau Sony, sehingga dalam beberapa hal mereka memang harus mengunci judul first-party
      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
    • Nintendo terobsesi membuat orang menggunakan produknya pada dasarnya hanya dengan cara yang mereka maksudkan
      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
    • Anda pada dasarnya sudah menjawab pertanyaan sendiri
      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