https://github.com/Ryujinx/Ryujinx Skip to content Sign up Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Project management - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Nonprofit - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up Sign up {{ message }} Ryujinx / Ryujinx * Sponsor Sponsor Ryujinx/Ryujinx * Notifications * Star 3.5k * Fork 520 Experimental Nintendo Switch Emulator written in C# www.ryujinx.org/ MIT License 3.5k stars 520 forks Star Notifications * Code * Issues 161 * Pull requests 38 * Actions * Projects 5 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Nothing to show {{ refName }} default View all branches Nothing to show {{ refName }} default View all tags 1 branch 0 tags Go to file Code Clone HTTPS GitHub CLI [https://github.com/R] Use Git or checkout with SVN using the web URL. [gh repo clone Ryujin] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio If nothing happens, download the GitHub extension for Visual Studio and try again. Go back Latest commit @Thog Thog Override openal-soft configuration (#2101) ... 39f171e Mar 13, 2021 Override openal-soft configuration (#2101) This enforce speaker mode to avoid weird audio quality reduction with output considered as headphones by Windows (It applies a HRTF or crossfeed filter supposed to improve audio quality, might be a bug on their end) 39f171e Git stats * 1,557 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github ci: Use Github artifacts for PRs (#2040) Feb 28, 2021 ARMeilleure Add progress reporting to PTC and Shader Cache (#2057) Mar 3, 2021 Ryujinx.Audio.Backends.OpenAL Haydn: Part 1 (#2007) Feb 26, 2021 Ryujinx.Audio.Backends.SoundIo Haydn: Make SoundIO session implementation lock-free (#2068) Feb 28, 2021 Ryujinx.Audio.Backends Haydn: Part 1 (#2007) Feb 26, 2021 Ryujinx.Audio Amadeus: Add ARM SIMD fast path (#2069) Mar 2, 2021 Ryujinx.Common Revise SystemInfo (#2047) Mar 1, 2021 Ryujinx.Cpu Remove unused physical region tracking (#2085) Mar 6, 2021 Ryujinx.Graphics.Device infra: Migrate to .NET 5 (#1694) Nov 15, 2020 Ryujinx.Graphics.GAL Texture Cache: "Texture Groups" and "Texture Dependencies" (#2001) Mar 2, 2021 Ryujinx.Graphics.Gpu Improve Buffer Textures and flush Image Stores (#2088) Mar 8, 2021 Ryujinx.Graphics.Host1x infra: Migrate to .NET 5 (#1694) Nov 15, 2020 Ryujinx.Graphics.Nvdec.H264 infra: Migrate to .NET 5 (#1694) Nov 15, 2020 Ryujinx.Graphics.Nvdec.Vp9 Enable multithreaded VP9 decoding (#2009) Feb 11, 2021 Ryujinx.Graphics.Nvdec infra: Migrate to .NET 5 (#1694) Nov 15, 2020 Ryujinx.Graphics.OpenGL Improve Buffer Textures and flush Image Stores (#2088) Mar 8, 2021 Ryujinx.Graphics.Shader Traverse PhiNodes for Bindless Elimination (#2089) Mar 9, 2021 Ryujinx.Graphics.Texture Fix lineSize for LinearStrided -> Linear conversion (#2091) Mar 10, 2021 Ryujinx.Graphics.Vic infra: Migrate to .NET 5 (#1694) Nov 15, 2020 Ryujinx.Graphics.Video infra: Migrate to .NET 5 (#1694) Nov 15, 2020 Ryujinx.HLE Close ILibraryAppletAccessor handles on disposal (#2094) Mar 10, 2021 Ryujinx.Memory.Tests Test: Fixes github action warning (#2100) Mar 13, 2021 Ryujinx.Memory Remove unused physical region tracking (#2085) Mar 6, 2021 Ryujinx.ShaderTools infra: Migrate to .NET 5 (#1694) Nov 15, 2020 Ryujinx.Tests.Unicorn infra: Migrate to .NET 5 (#1694) Nov 15, 2020 Ryujinx.Tests Haydn: Part 1 (#2007) Feb 26, 2021 Ryujinx Override openal-soft configuration (#2101) Mar 13, 2021 .editorconfig Adding .editorconfig so code style can be consistent and localized (# ... May 2, 2020 .gitattributes aloha Feb 4, 2018 .gitignore Implement ContentManager and related services (#438) Nov 18, 2018 LICENSE.txt Update license (#788) Oct 13, 2019 README.md Haydn: Part 1 (#2007) Feb 26, 2021 Ryujinx.sln Haydn: Part 1 (#2007) Feb 26, 2021 Ryujinx.sln.DotSettings Add features to GUI (#757) Nov 29, 2019 appveyor.yml infra: Migrate to .NET 5 (#1694) Nov 15, 2020 global.json Edit the global.json to allow use of dotnet sdk 5.0.XXX (#2008) Feb 10, 2021 View code README.md [6874747073] Ryujinx [6874747073] [6874747073] An experimental Switch emulator written in C# [shell_full] As of February 2021, Ryujinx has been tested on over 3,200 titles: ~2,500 boot past menus and into gameplay, with approximately 1,700 of those being considered playable. See the compatibility list here. Usage To run this emulator, we recommend that your PC have at least 8GB of RAM; less than this amount can result in unpredictable behavior and may cause crashes or unacceptable performance. See our Setup & Configuration Guide on how to set up the emulator. Latest build These builds are compiled automatically for each commit on the master branch. While we strive to ensure optimal stability and performance prior to pushing an update, our automated builds may be unstable or completely broken. The latest automatic build for Windows, macOS, and Linux can be found on the Official Website. Building If you wish to build the emulator yourself you will need to: Step one: Install the X64 version of .NET 5.0 (or higher) SDK. Step two (choose one): (Variant one) After the installation of the .NET SDK is done; go ahead and copy the Clone link from GitHub from here (via Clone or Download --> Copy HTTPS Link. You can Git Clone the repo by using Git Bash or Git CMD. (Variant two): Download the ZIP Tarball. Then extract it to a directory of your choice. Step three: Build the App using a Command prompt in the project directory. You can quickly access it by holding shift in explorer (in the Ryujinx directory) then right clicking, and typing the following command: Run dotnet build -c Release inside the Ryujinx project folder to build Ryujinx binaries. Ryujinx system files are stored in the Ryujinx folder. This folder is located in the user folder, which can be accessed by clicking Open Ryujinx Folder under the File menu in the GUI. Features * Audio Audio output is entirely supported, audio input (microphone) isn't supported. We use C# wrappers for OpenAL, and libsoundio as the fallback. * CPU The CPU emulator, ARMeilleure, emulates an ARMv8 CPU and currently has support for most 64-bit ARMv8 and some of the ARMv7 (and older) instructions, including partial 32-bit support. It translates the ARM code to a custom IR, performs a few optimizations, and turns that into x86 code. Ryujinx also features an optional Profiled Persistent Translation Cache, which essentially caches translated functions so that they do not need to be translated every time the game loads. The net result is a significant reduction in load times (the amount of time between launching a game and arriving at the title screen) for nearly every game. NOTE: this feature is now enabled by default in the Options menu > System tab. You must launch the game at least twice to the title screen or beyond before performance improvements are unlocked on the third launch! These improvements are permanent and do not require any extra launches going forward. * GPU The GPU emulator emulates the Switch's Maxwell GPU using the OpenGL API (version 4.4 minimum) through a custom build of OpenTK. There are currently four graphics enhancements available to the end user in Ryujinx: disk shader caching, resolution scaling, aspect ratio adjustment and anisotropic filtering. These enhancements can be adjusted or toggled as desired in the GUI. * Input We currently have support for keyboard, mouse, touch input, JoyCon input support emulated through the keyboard, and most controllers. Controller support varies by operating system, as outlined below. Windows: Xinput-compatible controllers are supported natively; other controllers can be supported with the help of Xinput wrappers such as x360ce. Linux: most modern controllers are supported. In either case, you can set up everything inside the input configuration menu. * DLC & Modifications Ryujinx is able to manage add-on content/downloadable content through the GUI. Mods (romfs and exefs) are also supported and the GUI contains a shortcut to open the respective mods folder for a particular game. * Configuration The emulator has settings for enabling or disabling some logging, remapping controllers, and more. You can configure all of them through the graphical interface or manually through the config file, Config.json, found in the user folder which can be accessed by clicking Open Ryujinx Folder under the File menu in the GUI. Compatibility You can check out the compatibility list here. Don't hesitate to open a new issue if a game isn't already on there! Help If you are having problems launching homebrew or a particular game marked status-playable or status-ingame in our compatibility list, you can contact us through our Discord server. We'll take note of whatever is causing the app/game to not work, put it on the watch list and fix it at a later date. If you need help with setting up Ryujinx, you can ask questions in the #support channel of our Discord server. Contact If you have contributions, need support, have suggestions, or just want to get in touch with the team, join our Discord server! If you'd like to donate, please take a look at our Patreon. License This software is licensed under the terms of the MIT license. The Ryujinx.Audio project is licensed under the terms of the LGPLv3 license. This project makes use of code authored by the libvpx project, licensed under BSD and the ffmpeg project, licensed under LGPLv3. See LICENSE.txt and THIRDPARTY.md for more details. About Experimental Nintendo Switch Emulator written in C# www.ryujinx.org/ Topics emulator csharp dotnet emulation switch dotnet-core Resources Readme License MIT License Releases No releases published Sponsor this project * patreon patreon.com/Ryujinx Packages 0 No packages published Contributors 75 * * * * * * * * * * * + 64 contributors Languages * C# 99.4% * Other 0.6% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.