0
0
Fork 0
mirror of https://github.com/GreemDev/Ryujinx.git synced 2024-11-22 06:18:34 +00:00

init

Evan Husted 2024-10-25 06:45:27 -05:00
parent 594e7ebfee
commit 2619e5ad9a
4 changed files with 104 additions and 11737 deletions

File diff suppressed because it is too large Load diff

@ -27,8 +27,8 @@ In this context, to dump files is to transfer them from your hacked Nintendo Swi
### **__• How can I dump my firmware/games/keys?__** ### **__• How can I dump my firmware/games/keys?__**
First, you need to hack your Nintendo Switch, which you can learn how to do here: [https://nh-server.github.io/switch-guide/](https://nh-server.github.io/switch-guide/). First, you need to hack your Nintendo Switch, which you can learn how to do here: [https://nh-server.github.io/switch-guide/](https://nh-server.github.io/switch-guide/).
Once you have hacked your Switch, [backed up your keys](https://github.com/Ryujinx/Ryujinx/wiki/Keys) Once you have hacked your Switch, [backed up your keys](https://github.com/GreemDev/Ryujinx/wiki/Keys)
and [dumped your firmware](https://github.com/Ryujinx/Ryujinx/wiki/Firmware-Dumping-Guide-(TegraExplorer-or-hbmenu-&-Goldleaf)), and [dumped your firmware](https://github.com/GreemDev/Ryujinx/wiki/Firmware-Dumping-Guide-(TegraExplorer-or-hbmenu-&-Goldleaf)),
you may use the [nxdumptool homebrew](https://github.com/DarkMatterCore/nxdumptool/releases) on your Switch to dump your games, updates and DLC files. you may use the [nxdumptool homebrew](https://github.com/DarkMatterCore/nxdumptool/releases) on your Switch to dump your games, updates and DLC files.
### **__• Why use an emulator if I already have a Switch?__** ### **__• Why use an emulator if I already have a Switch?__**
@ -42,25 +42,20 @@ you may use the [nxdumptool homebrew](https://github.com/DarkMatterCore/nxdumpto
8. Convenience: you avoid having several consoles plugged in and switching between them to play what you want. 8. Convenience: you avoid having several consoles plugged in and switching between them to play what you want.
9. Years down the line, online shops and services will close, and hardware will start breaking down, but emulation and digital dumps wont; in the future, the console and its games will be preserved digitally thanks to Ryujinx and your game backups that you created in the present, even after the system is long dead and your console has become a paperweight. 9. Years down the line, online shops and services will close, and hardware will start breaking down, but emulation and digital dumps wont; in the future, the console and its games will be preserved digitally thanks to Ryujinx and your game backups that you created in the present, even after the system is long dead and your console has become a paperweight.
### **__• How well does [game] run on Ryujinx?__**
You can find compatibility reports here: [https://github.com/Ryujinx/Ryujinx-Games-List/issues](https://github.com/Ryujinx/Ryujinx-Games-List/issues)
If you wish to contribute, you can open a new issue if the game has never been added, or you can add your test results as a comment on a game's issue for it to be merged into the top post, as long as it contains all the necessary information.
### **__• What are the optimal best settings?__** ### **__• What are the optimal best settings?__**
Default settings and Vulkan if your GPU supports it. Ryujinx works out of the box and is already on the best settings by default. Default settings and Vulkan if your GPU supports it. Ryujinx works out of the box and is already on the best settings by default.
You can of course tinker with the graphics settings (resolution, antialiasing, scaling filter, anisotropic filtering) so you can achieve the proper image quality for your setup, but **you shouldnt change anything else** unless specified in compatibility entries or instructed by a staff member. Youre very likely to make performance worse (and in a few cases, crash) if you do. You can of course tinker with the graphics settings (resolution, antialiasing, scaling filter, anisotropic filtering) so you can achieve the proper image quality for your setup, but **you shouldnt change anything else** unless specified in compatibility entries or instructed by a staff member. Youre very likely to make performance worse (and in a few cases, crash) if you do.
### **__• I have no idea what I'm doing. How do I Ryujinx?__** ### **__• I have no idea what I'm doing. How do I Ryujinx?__**
Follow the Ryujinx Setup & Configuration Guide:[ https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide](https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide) or see the Readme:[ https://github.com/Ryujinx/Ryujinx/blob/master/README.md](https://github.com/Ryujinx/Ryujinx/blob/master/README.md) . Follow the [Ryujinx Setup & Configuration Guide](https://github.com/GreemDev/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide) or see the Readme:[ https://github.com/GreemDev/Ryujinx/blob/master/README.md](https://github.com/GreemDev/Ryujinx/blob/master/README.md) .
If you are still having trouble, please visit a support channel on our [Discord Server](https://discord.gg/VkQYXAZ) and we will be happy to assist. If you are still having trouble, please visit a support channel on our [Discord Server](https://discord.gg/dHPrkBkkyA) and we will be happy to assist.
### **__• How do I add games to Ryujinx?__** ### **__• How do I add games to Ryujinx?__**
Add a games directory in `Settings` > `User Interface` > `Game Directories` > `Add`. Add a games directory in `Settings` > `User Interface` > `Game Directories` > `Add`.
![games directory](https://github.com/Ryujinx/Ryujinx/assets/79612681/cd3091c3-1423-4f68-9389-cc4b8e9114ad) ![games directory](https://github.com/GreemDev/Ryujinx/assets/79612681/cd3091c3-1423-4f68-9389-cc4b8e9114ad)
The games dont have to show up on the window where you are selecting the folder, as its looking for folders, not game files. The games dont have to show up on the window where you are selecting the folder, as its looking for folders, not game files.
@ -86,7 +81,7 @@ Left click on the binding then press middle click on your mouse.
### **__• Help! Why is the emulator crashing?__** ### **__• Help! Why is the emulator crashing?__**
Refer to the [troubleshooting](#common-errors-and-troubleshooting) and [game-specific](#game-specific-errors-and-troubleshooting) sections below. Refer to the [troubleshooting](#common-errors-and-troubleshooting) and [game-specific](#game-specific-errors-and-troubleshooting) sections below.
If you cant find your issue in this page: join our [Discord server](https://discord.gg/ryujinx), provide an explanation of the issue and upload a .log file to the appropriate support channel. Our staff will take a look and give you some pointers on what's going wrong. If you cant find your issue in this page: join our [Discord server](https://discord.gg/dHPrkBkkyA), provide an explanation of the issue and upload a .log file to the appropriate support channel. Our staff will take a look and give you some pointers on what's going wrong.
### **__• How can I lower the resolution?__** ### **__• How can I lower the resolution?__**
Disable docked mode or set a custom resolution multiplier of 0.xx (for example: `0.75`) or 0,xx (`0,75`), depending on what your language uses. Disable docked mode or set a custom resolution multiplier of 0.xx (for example: `0.75`) or 0,xx (`0,75`), depending on what your language uses.
@ -153,22 +148,13 @@ If the cheats don't work in-game, they are most likely not for your version of t
- `F9` toggles docked/handheld mode. - `F9` toggles docked/handheld mode.
- `F11`/`Alt+Enter` toggles fullscreen. - `F11`/`Alt+Enter` toggles fullscreen.
There are also hotkeys for increasing and decreasing resolution scaling, and increasing and decreasing sound volume, but they are unbound by default. Most of these are exposed and configurable in the Avalonia UI, and there's an [open pull request](https://github.com/Ryujinx/Ryujinx/pull/4503) to add the remaining ones. There are also hotkeys for increasing and decreasing resolution scaling, and increasing and decreasing sound volume, but they are unbound by default. Most of these are exposed and configurable in the UI.
### **__• What is Avalonia?__**
Avalonia is a user interface framework. We have been developing a new Avalonia-based UI for quite some time now, and we plan to completely remove the old GTK UI soon.
### **__• Where can I try this Avalonia thing?__**
As of 1.1.1217, Avalonia has become the default UI.
### **__• Does Avalonia autoupdate?__**
Yes.
### **__• How do I update the emulator?__** ### **__• How do I update the emulator?__**
Click on `Help` then `Check for Updates`. Click on `Help` then `Check for Updates`.
### **__• How do I report a bug?__** ### **__• How do I report a bug?__**
If you've found a bug, please first make sure it's not been reported on the [main issue tracker](https://github.com/Ryujinx/Ryujinx/issues) or on the [game compatibility list](https://github.com/Ryujinx/Ryujinx-Games-List/issues). Then post a comment in the game's compatibility entry with a screenshot, a log and a save file, along with an explanation on how to reproduce the issue. This allows our developers to quickly look into bugs, without having to worry about how to reproduce them. If you've found a bug, please first make sure it's not been reported on the [issue tracker](https://github.com/GreemDev/Ryujinx/issues). Then post a comment in the game's compatibility entry with a screenshot, a log and a save file, along with an explanation on how to reproduce the issue. This allows our developers to quickly look into bugs, without having to worry about how to reproduce them.
### **__• How well does Ryujinx run on macOS?__** ### **__• How well does Ryujinx run on macOS?__**
Apple Silicon macOS devices, such as the M1 or M2, can run Ryujinx with good playability across many titles. Apple Silicon macOS devices, such as the M1 or M2, can run Ryujinx with good playability across many titles.
@ -188,14 +174,6 @@ No. While we would love to see Ryujinx on Android devices, our priorities curren
### **__• Can I run Ryujinx on Xbox Series X?__** ### **__• Can I run Ryujinx on Xbox Series X?__**
No. It requires a DirectX renderer, which Ryujinx does not have at the moment. There are also RAM limitations and some graphics features that Ryujinx needs arent supported on DirectX, among other things. No. It requires a DirectX renderer, which Ryujinx does not have at the moment. There are also RAM limitations and some graphics features that Ryujinx needs arent supported on DirectX, among other things.
### **__• When is [feature] coming?__**
We dont like giving ETAs, as all of our developers work on Ryujinx in their free time, and you can never know when something will be entirely ready in open source projects in general.
If you would like to help speed up the process, we currently have a [Patreon](https://www.patreon.com/ryujinx/membership) goal that, when reached, will help gdkchan, the main developer and project lead, to become a full-time developer.
### **__• Has [feature] been implemented/[bug] been fixed yet?__**
You can search for it by pressing `CTRL+F` or `F3` on our changelog page: https://github.com/Ryujinx/Ryujinx/wiki/Changelog
### **__• How can I create a Mii?__** ### **__• How can I create a Mii?__**
`File` > `Load/Open Applet` > `Mii Editor`. You cant create them from in-game as Ryujinx doesnt support loading applets during gameplay yet. `File` > `Load/Open Applet` > `Mii Editor`. You cant create them from in-game as Ryujinx doesnt support loading applets during gameplay yet.
@ -203,7 +181,7 @@ You can search for it by pressing `CTRL+F` or `F3` on our changelog page: https:
Go in-game to where it asks you to scan one, then click on `Actions` > `Scan an Amiibo`. Go in-game to where it asks you to scan one, then click on `Actions` > `Scan an Amiibo`.
### **__• Where can I find a game's save files?__** ### **__• Where can I find a game's save files?__**
Once you have [added a games directory](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-how-do-i-add-games-to-ryujinx), right click a game and select `Open User Save Directory` or `Open Device Save Directory`. Most games utilise a user save, but some games use a system save; for example Animal Crossing. Once you have [added a games directory](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-how-do-i-add-games-to-ryujinx), right click a game and select `Open User Save Directory` or `Open Device Save Directory`. Most games utilise a user save, but some games use a system save; for example Animal Crossing.
![saves](https://github.com/Ryujinx/Ryujinx/assets/79612681/3aad07fb-98e4-49b7-a6fa-bd9e6acdcd48) ![saves](https://github.com/Ryujinx/Ryujinx/assets/79612681/3aad07fb-98e4-49b7-a6fa-bd9e6acdcd48)
@ -216,7 +194,7 @@ Save files are all compatible across Switch devices and all Switch emulators, so
This is how the Switch itself does it. We are merely trying to emulate the Nintendo Switch filesystem properly. This is how the Switch itself does it. We are merely trying to emulate the Nintendo Switch filesystem properly.
### **__• Can I extract data from a game using Ryujinx?__** ### **__• Can I extract data from a game using Ryujinx?__**
Once you have [added a games directory](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-how-do-i-add-games-to-ryujinx), right click on a game > `Extract Data`, choose the section you want to extract, then select the folder you want to extract it to. Once you have [added a games directory](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-how-do-i-add-games-to-ryujinx), right click on a game > `Extract Data`, choose the section you want to extract, then select the folder you want to extract it to.
DLC data is NOT extracted currently. DLC data is NOT extracted currently.
@ -232,29 +210,29 @@ To reiterate, this is **not** GPU usage, it's the emulated Nintendo Switch's GPU
Ryujinx has 1:1 guest to host threads (but a scheduler keeps only one active per 4 cores at a time), there is one GPU command processing thread, there is optionally one GPU backend thread, there are up to 8 shader background compile threads, there is a dynamic number of JIT highcq background threads, and there are an unbounded number of ASTC decompression threads. Ryujinx has 1:1 guest to host threads (but a scheduler keeps only one active per 4 cores at a time), there is one GPU command processing thread, there is optionally one GPU backend thread, there are up to 8 shader background compile threads, there is a dynamic number of JIT highcq background threads, and there are an unbounded number of ASTC decompression threads.
### **__• How do I build a PR?__** ### **__• How do I build a PR?__**
To build a pull request, first of all [download and install the .NET SDK](https://dotnet.microsoft.com/en-us/download/dotnet/7.0). Go to the top of the PR > click the link after "from" (ex. `gdkchan:true-gmem`), click the green `<> Code` button > `Download ZIP`, extract it, open the extracted folder, `shift+right click` on an empty area of the folder, then click `Open PowerShell window here`, type `dotnet publish -c Release` and click `Enter`. After its done, the window will say where it put the files. If you still cant find them, search for `Ryujinx.exe`, or `Ryujinx.Ava.exe` for the Avalonia build. To build a pull request, first of all [download and install the .NET SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0). Go to the top of the PR > click the link after "from" (ex. `gdkchan:true-gmem`), click the green `<> Code` button > `Download ZIP`, extract it, open the extracted folder, `shift+right click` on an empty area of the folder, then click `Open PowerShell window here`, type `dotnet publish -c Release` and click `Enter`. After its done, the window will say where it put the files. If you still cant find them, search for `Ryujinx.exe`, or `Ryujinx.Ava.exe` for the Avalonia build.
### **__• How do I play online multiplayer?__** ### **__• How do I play online multiplayer?__**
With our LDN build, which allows playing games that feature local wireless or local play, simulating 2 consoles being within close proximity to each other, with other Ryujinx LDN players over the Internet. With our LDN build, which allows playing games that feature local wireless or local play, simulating 2 consoles being within close proximity to each other, with other Ryujinx LDN players over the Internet.
See the Multiplayer Guide here:[ https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide](https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide) See the Multiplayer Guide here:[ https://github.com/GreemDev/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide](https://github.com/GreemDev/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide)
### **__• When I click on connect to the internet, Ryujinx doesnt connect?__** ### **__• When I click on connect to the internet, Ryujinx doesnt connect?__**
See the multiplayer guide above. Youre not supposed to click on anything that mentions “online” or “the internet” in-game as that leads to Nintendo servers; youre supposed to find the local play/local wireless/play locally option, which is then used to connect over the internet with other Ryujinx users. See the multiplayer guide above. Youre not supposed to click on anything that mentions “online” or “the internet” in-game as that leads to Nintendo servers; youre supposed to find the local play/local wireless/play locally option, which is then used to connect over the internet with other Ryujinx users.
### **__• What multiplayer modes does Ryujinx support and what are the differences between them?__** ### **__• What multiplayer modes does Ryujinx support and what are the differences between them?__**
**LDN**/local wireless/local play is an ad-hoc WiFi connection between 2 or more consoles in close proximity. [A ton of games](https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide#how-to-play-ldn) have this on the Switch. We use this to connect Ryujinx instances over the internet. **LDN**/local wireless/local play is an ad-hoc WiFi connection between 2 or more consoles in close proximity. [A ton of games](https://github.com/GreemDev/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide#how-to-play-ldn) have this on the Switch. We use this to connect Ryujinx instances over the internet.
**ldn_mitm** makes LDN/local wireless/local play behave as if it were LAN, allowing for same-network (local) connections. This can be used to connect Ryujinx with hacked consoles that have [ldn_mitm](https://github.com/spacemeowx2/ldn_mitm/releases) installed on them. If you use [XLink Kai](https://www.teamxlink.co.uk/wiki/Ryujinx_XLink_Kai_Setup), you can connect via ldn_mitm with other Ryujinx and hacked Switch consoles through the internet, not just locally. **ldn_mitm** makes LDN/local wireless/local play behave as if it were LAN, allowing for same-network (local) connections. This can be used to connect Ryujinx with hacked consoles that have [ldn_mitm](https://github.com/spacemeowx2/ldn_mitm/releases) installed on them. If you use [XLink Kai](https://www.teamxlink.co.uk/wiki/Ryujinx_XLink_Kai_Setup), you can connect via ldn_mitm with other Ryujinx and hacked Switch consoles through the internet, not just locally.
**LAN** is 2 or more systems connecting through an access point locally. About [15 games](https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide#lan-mode-games) have this on the Switch. Games with a LAN mode can connect with **any consoles or Ryujinx instances** on the same network. If you use [XLink Kai](https://www.teamxlink.co.uk/wiki/Ryujinx_XLink_Kai_Setup) or a VPN like [Zerotier](https://www.zerotier.com/download/), you can connect LAN games across any Ryujinx instances, Switch consoles and other emulators through the internet, not just locally. **LAN** is 2 or more systems connecting through an access point locally. About [15 games](https://github.com/GreemDev/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide#lan-mode-games) have this on the Switch. Games with a LAN mode can connect with **any consoles or Ryujinx instances** on the same network. If you use [XLink Kai](https://www.teamxlink.co.uk/wiki/Ryujinx_XLink_Kai_Setup) or a VPN like [Zerotier](https://www.zerotier.com/download/), you can connect LAN games across any Ryujinx instances, Switch consoles and other emulators through the internet, not just locally.
Nintendo Switch Online is not supported. Custom servers that replicate Nintendo Switch Online are not supported. Nintendo Switch Online is not supported. Custom servers that replicate Nintendo Switch Online are not supported.
### **__• How can I connect Ryujinx to a Switch?__** ### **__• How can I connect Ryujinx to a Switch?__**
Read the above answer, specifically the LAN and ldn_mitm parts. Read the above answer, specifically the LAN and ldn_mitm parts.
Hacked consoles can use both LAN and ldn_mitm. To connect with unhacked consoles, the game needs to include a LAN mode. At the time of writing, only [a handful of games](https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide#lan-mode-games) support LAN mode on Switch; if the game youre playing is not one of them, **you cant connect them to an unhacked Switch** yet. It may become possible in the future. Hacked consoles can use both LAN and ldn_mitm. To connect with unhacked consoles, the game needs to include a LAN mode. At the time of writing, only [a handful of games](https://github.com/GreemDev/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide#lan-mode-games) support LAN mode on Switch; if the game youre playing is not one of them, **you cant connect them to an unhacked Switch** yet. It may become possible in the future.
### **__• Can I play online with my friend whos using a Nintendo Switch?__** ### **__• Can I play online with my friend whos using a Nintendo Switch?__**
See the previous two answers. To play with a Nintendo Switch over the internet, youre gonna need XLink Kai or a VPN like Zerotier, and also, if the game doesnt have a LAN mode, the Nintendo Switch will need to be hacked as you will need to use ldn_mitm. There is currently no way to hook up a Nintendo Switch console to Ryujinxs LDN servers. However, in the future it may be possible to connect a PC to an unmodded Switch via LDN locally, without the need for ldn_mitm. See the previous two answers. To play with a Nintendo Switch over the internet, youre gonna need XLink Kai or a VPN like Zerotier, and also, if the game doesnt have a LAN mode, the Nintendo Switch will need to be hacked as you will need to use ldn_mitm. There is currently no way to hook up a Nintendo Switch console to Ryujinxs LDN servers. However, in the future it may be possible to connect a PC to an unmodded Switch via LDN locally, without the need for ldn_mitm.
@ -276,7 +254,7 @@ If youre playing Super Smash Bros. Ultimate, the game has latency baked into
Nobody actually knows, but our best guess is “Local Direct Network” or "Local Distance Network". Nintendo internally refer to local wireless functionality as “LDN”, but the full name is never used. Nobody actually knows, but our best guess is “Local Direct Network” or "Local Distance Network". Nintendo internally refer to local wireless functionality as “LDN”, but the full name is never used.
### **__• Can I make Ryujinx into a portable install?__** ### **__• Can I make Ryujinx into a portable install?__**
Yes! See the [portable mode quick reference guide](https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#portable-mode). Yes! See the [portable mode quick reference guide](https://github.com/GreemDev/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#portable-mode).
### **__• Whats a portable install?__** ### **__• Whats a portable install?__**
By default, Ryujinx uses your `C:\Users\yourname\AppData\Roaming\Ryujinx` directory for storing firmware, keys, save files, configs, caches etc. If you make a folder named `portable` in the same directory as the Ryujinx executable, the emulator will use that folder instead of the AppData one to store all those files. This is useful if you would like to keep everything in one place, or to avoid settings resetting or shaders constantly rebuilding if youre testing multiple different Ryujinx versions. By default, Ryujinx uses your `C:\Users\yourname\AppData\Roaming\Ryujinx` directory for storing firmware, keys, save files, configs, caches etc. If you make a folder named `portable` in the same directory as the Ryujinx executable, the emulator will use that folder instead of the AppData one to store all those files. This is useful if you would like to keep everything in one place, or to avoid settings resetting or shaders constantly rebuilding if youre testing multiple different Ryujinx versions.
@ -284,7 +262,7 @@ By default, Ryujinx uses your `C:\Users\yourname\AppData\Roaming\Ryujinx` direct
### **__• How can I support Ryujinx?__** ### **__• How can I support Ryujinx?__**
There are many ways to support or contribute to Ryujinx. You can support us through Patreon (https://www.patreon.com/ryujinx) or you can boost the server with Discord Nitro. If you know how to help somebody in support, you can help us by answering questions there. You can help with testing future changes to the emulator in Discords #pr-testing channel or in a PRs discussion page as well. There are many ways to support or contribute to Ryujinx. You can support us through Patreon (https://www.patreon.com/ryujinx) or you can boost the server with Discord Nitro. If you know how to help somebody in support, you can help us by answering questions there. You can help with testing future changes to the emulator in Discords #pr-testing channel or in a PRs discussion page as well.
If you are a developer, there are [Good First Issues](https://github.com/Ryujinx/Ryujinx/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) listed on our issue tracker. We do encourage you to talk to some devs in our Discords development channel before setting off, so we can confirm your work isn't conflicting with another user's, and so we can help you get used to the codebase and what needs to be done with various issues. If you are a developer, there are [Good First Issues](https://github.com/GreemDev/Ryujinx/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) listed on our issue tracker. We do encourage you to talk to some devs in our Discords development channel before setting off, so we can confirm your work isn't conflicting with another user's, and so we can help you get used to the codebase and what needs to be done with various issues.
@ -335,7 +313,7 @@ If the error looks like this, click the game once then press `Enter` or use the
![image5](https://user-images.githubusercontent.com/79612681/232948327-0bf8e054-b9c2-4b4f-9c96-27177d7e0b2a.png) ![image5](https://user-images.githubusercontent.com/79612681/232948327-0bf8e054-b9c2-4b4f-9c96-27177d7e0b2a.png)
### • Crashing after booting a game or crashing after applying an update with `|E| HLE.OsThread.8 Application : Unhandled exception caught: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> LibHac.Common.HorizonResultException: ResultFsNonRealDataVerificationFailed (2002-4604): Hash error!` ### • Crashing after booting a game or crashing after applying an update with `|E| HLE.OsThread.8 Application : Unhandled exception caught: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> LibHac.Common.HorizonResultException: ResultFsNonRealDataVerificationFailed (2002-4604): Hash error!`
Your game file, update file or both are corrupted/invalid, you need to [dump](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-what-does-dumping-mean) them again and [ensure nothing goes wrong in the process](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-hangs-on-boot-log-says-e-loader-loadnca-no-exefs-found-in-nca). Your game file, update file or both are corrupted/invalid, you need to [dump](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-what-does-dumping-mean) them again and [ensure nothing goes wrong in the process](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-hangs-on-boot-log-says-e-loader-loadnca-no-exefs-found-in-nca).
- If removing the update works, it's the update file that is corrupted. - If removing the update works, it's the update file that is corrupted.
- If the error still occurs, it's the game file that is corrupted. - If the error still occurs, it's the game file that is corrupted.
@ -343,14 +321,14 @@ Your game file, update file or both are corrupted/invalid, you need to [dump](ht
Similar to the above error, the file youre trying to load is not a supported file type or may be corrupt. Similar to the above error, the file youre trying to load is not a supported file type or may be corrupt.
### • Crashing after booting a game with `|E| Application : Unhandled exception caught: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> LibHac.Common.HorizonResultException: ResultFsPathNotFound (2002-0001)` ### • Crashing after booting a game with `|E| Application : Unhandled exception caught: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> LibHac.Common.HorizonResultException: ResultFsPathNotFound (2002-0001)`
You might be running an update file instead of a game file. See [here](https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#managing-game-updates) for how to properly update a game. You might be running an update file instead of a game file. See [here](https://github.com/GreemDev/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#managing-game-updates) for how to properly update a game.
Another possible cause is Ryujinx might be forbidden from accessing the save folder for this game. This can be either due to a permission issue, for instance, from being placed on the desktop, the root of a drive or any kind of protected folder; or due to an antivirus not allowing the files to be accessed by the emulator. Another possible cause is Ryujinx might be forbidden from accessing the save folder for this game. This can be either due to a permission issue, for instance, from being placed on the desktop, the root of a drive or any kind of protected folder; or due to an antivirus not allowing the files to be accessed by the emulator.
### • Crashing with `|E| HLE.OsThread.8 Application : Unhandled exception caught: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: System archive with titleid 0100000000000823 was not found on Storage BuiltInSystem. Found in None.` ### • Crashing with `|E| HLE.OsThread.8 Application : Unhandled exception caught: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: System archive with titleid 0100000000000823 was not found on Storage BuiltInSystem. Found in None.`
Your firmware is too old to run the game youre trying to run, and it tried to use files that dont exist in such an old version. Update your keys and firmware. Your firmware is too old to run the game youre trying to run, and it tried to use files that dont exist in such an old version. Update your keys and firmware.
### • “Ryujinx has encountered an error: System update title was not found in the firmware package.” ### • “Ryujinx has encountered an error: System update title was not found in the firmware package.”
The file you're trying to install as a firmware does not contain actual firmware. See the [firmware dumping guide](https://github.com/Ryujinx/Ryujinx/wiki/Firmware-Dumping-Guide) for how to dump yours. The file you're trying to install as a firmware does not contain actual firmware. See the [firmware dumping guide](https://github.com/GreemDev/Ryujinx/wiki/Firmware-Dumping-Guide) for how to dump yours.
### • “RYU-0003: Firmware parsing error Ryujinx was unable to parse the provided firmware. **_This is usually caused by outdated keys_**.” ### • “RYU-0003: Firmware parsing error Ryujinx was unable to parse the provided firmware. **_This is usually caused by outdated keys_**.”
The error itself tells you. Firmware and keys go hand in hand; if you update your firmware, you need to update your keys too. The error itself tells you. Firmware and keys go hand in hand; if you update your firmware, you need to update your keys too.
@ -376,7 +354,7 @@ If you get this error but the below strings mention `PTC`, it means your PPTC is
When dumping your game, enable “Remove console specific data”, “Generate ticket-less dump” and “Change NPDM RSA key/sig in Program NCA” in nxdumptool. When dumping your game, enable “Remove console specific data”, “Generate ticket-less dump” and “Change NPDM RSA key/sig in Program NCA” in nxdumptool.
### • NSP file won't show on the main menu, loading it from file will hang the emulator and log the following warning: `|W| Loader GetNpdm: NPDM file not found, using default values!` followed by these errors: `|E| Loader LoadNsos: Process initialization returned error "InvalidMemoryRegion".` `|E| Loader TryLoad: Unable to load: Could not find Main NCA` ### • NSP file won't show on the main menu, loading it from file will hang the emulator and log the following warning: `|W| Loader GetNpdm: NPDM file not found, using default values!` followed by these errors: `|E| Loader LoadNsos: Process initialization returned error "InvalidMemoryRegion".` `|E| Loader TryLoad: Unable to load: Could not find Main NCA`
You're trying to load an update file instead of a game file. See [the setup guide](https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#managing-game-updates) for how to properly update your games. You're trying to load an update file instead of a game file. See [the setup guide](https://github.com/GreemDev/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide#managing-game-updates) for how to properly update your games.
### • Ryujinx showing a black screen: ### • Ryujinx showing a black screen:
First, make sure that the game you are trying to run is actually supported and that your graphics card is capable of running it. First, make sure that the game you are trying to run is actually supported and that your graphics card is capable of running it.
@ -407,7 +385,7 @@ This means your VRAM was exhausted. Check that your resolution scaling isnt t
If youre playing Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder or The Legend of Zelda: Tears of the Kingdom, you might need to enable texture recompression in graphics settings. This is because these games use ASTC textures, which are supported natively without needing to be decompressed on the Switch, but when decompressed on PC can become massive and take up a lot of VRAM. If youre playing Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder or The Legend of Zelda: Tears of the Kingdom, you might need to enable texture recompression in graphics settings. This is because these games use ASTC textures, which are supported natively without needing to be decompressed on the Switch, but when decompressed on PC can become massive and take up a lot of VRAM.
If youre playing other games and your resolution is on native, it might be an issue with emulating that particular game. Check the [game compatibility list](https://github.com/Ryujinx/Ryujinx-Games-List/issues) to see if its been reported, and if not, post a test result. If youre playing other games and your resolution is on native, it might be an issue with emulating that particular game.
### • Game crashes with `|E| GUI.RenderLoop Application : Unhandled exception caught: Ryujinx.Graphics.Vulkan.VulkanException: Unexpected API error "ErrorDeviceLost".` ### • Game crashes with `|E| GUI.RenderLoop Application : Unhandled exception caught: Ryujinx.Graphics.Vulkan.VulkanException: Unexpected API error "ErrorDeviceLost".`
This is a generic Vulkan crash. Theres hardly any information that can be gleaned from it, and the solutions vary wildly from case to case, but most of the time its not something users can fix or workaround. This is a generic Vulkan crash. Theres hardly any information that can be gleaned from it, and the solutions vary wildly from case to case, but most of the time its not something users can fix or workaround.
@ -428,9 +406,9 @@ As shown in this example, right before the “guest stack trace”, there will b
- `ResultFsTargetNotFound (2002-1002)` might have the same causes and solutions as those described above. - `ResultFsTargetNotFound (2002-1002)` might have the same causes and solutions as those described above.
- `ResultKvdbInvalidKeyValue (2020-0005)`, also similar to the 2 above errors, means the savedata index for the game isnt found, so the savedata is corrupted. Try backing up and then deleting the game's savedata folders. If this doesn't solve it, backup your whole Ryujinx data folder (`C:\Users\yourname\AppData\Roaming\Ryujinx`, or the portable folder if you've made a [portable install](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-whats-a-portable-install)) and then delete it. Then restore the subfolders (caches, save files) you'd like to keep. - `ResultKvdbInvalidKeyValue (2020-0005)`, also similar to the 2 above errors, means the savedata index for the game isnt found, so the savedata is corrupted. Try backing up and then deleting the game's savedata folders. If this doesn't solve it, backup your whole Ryujinx data folder (`C:\Users\yourname\AppData\Roaming\Ryujinx`, or the portable folder if you've made a [portable install](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-whats-a-portable-install)) and then delete it. Then restore the subfolders (caches, save files) you'd like to keep.
- `ResultFsOutOfRange (2002-3005)` usually indicates a bad dump (corrupt game files). If FS integrity checks is disabled and you are getting this error, enable it, run the game again and check if you now get a hash error as described [here](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-crashing-after-booting-a-game-or-crashing-after-applying-an-update-with-e-hleosthread8-application--unhandled-exception-caught-systemreflectiontargetinvocationexception-exception-has-been-thrown-by-the-target-of-an-invocation-----libhaccommonhorizonresultexception-resultfsnonrealdataverificationfailed-2002-4604-hash-error). - `ResultFsOutOfRange (2002-3005)` usually indicates a bad dump (corrupt game files). If FS integrity checks is disabled and you are getting this error, enable it, run the game again and check if you now get a hash error as described [here](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-crashing-after-booting-a-game-or-crashing-after-applying-an-update-with-e-hleosthread8-application--unhandled-exception-caught-systemreflectiontargetinvocationexception-exception-has-been-thrown-by-the-target-of-an-invocation-----libhaccommonhorizonresultexception-resultfsnonrealdataverificationfailed-2002-4604-hash-error).
- `ResultErrApplicationAborted (2162-0001)` is as generic as it gets. Check your games compatibility list entry or the game-specific troubleshooting entry in this page if you get this. - `ResultErrApplicationAborted (2162-0001)` is as generic as it gets. Check your games compatibility list entry or the game-specific troubleshooting entry in this page if you get this.
@ -500,9 +478,9 @@ Simply head to the website, download the latest version and delete the Ryujinx f
This may happen if you update while a game is running or while emulator settings are open, if you have a third party antivirus falsely flagging Ryujinx upon updating or if you have Ryujinx on a protected folder, such as the desktop or the root of a drive. This may happen if you update while a game is running or while emulator settings are open, if you have a third party antivirus falsely flagging Ryujinx upon updating or if you have Ryujinx on a protected folder, such as the desktop or the root of a drive.
### • Cant connect to the internet/Error Code: 2306-0520 Unable to connect to the Internet. The DNS settings or proxy server may have been entered incorrectly: ### • Cant connect to the internet/Error Code: 2306-0520 Unable to connect to the Internet. The DNS settings or proxy server may have been entered incorrectly:
Read [here](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-what-multiplayer-modes-does-ryujinx-support-and-what-are-the-differences-between-them). Ryujinx does not support connecting to Nintendo Switch Online (NSO). Any options in a game that prompt you to connect to the internet will almost assuredly try to connect to Nintendo servers, which will not work. Read [here](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-what-multiplayer-modes-does-ryujinx-support-and-what-are-the-differences-between-them). Ryujinx does not support connecting to Nintendo Switch Online (NSO). Any options in a game that prompt you to connect to the internet will almost assuredly try to connect to Nintendo servers, which will not work.
If you are trying to play multiplayer with other Ryujinx users, you will want [local wireless/local play/play locally](https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide), which despite the name will work over the internet. If you are trying to play with Nintendo Switch users, you want LAN mode in games that support it, or ldn_mitm which will allow playing with consoles via LDN, though only if theyre hacked. If you are trying to play multiplayer with other Ryujinx users, you will want [local wireless/local play/play locally](https://github.com/GreemDev/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide), which despite the name will work over the internet. If you are trying to play with Nintendo Switch users, you want LAN mode in games that support it, or ldn_mitm which will allow playing with consoles via LDN, though only if theyre hacked.
### • Experiencing audio delay after playing for over an hour: ### • Experiencing audio delay after playing for over an hour:
Pause and unpause emulation (`F5` by default). You may also try changing your audio backend to OpenAL if you're on SDL2. Pause and unpause emulation (`F5` by default). You may also try changing your audio backend to OpenAL if you're on SDL2.
@ -576,14 +554,14 @@ Disable docked mode and `Direct Mouse Access`. Touch functionality will not work
- Crashing on ARM macOS: disable the hypervisor. - Crashing on ARM macOS: disable the hypervisor.
### Astral Chain ### Astral Chain
- Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory). - Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory).
- Game is not the right speed: right click on the games list > `Cache Management` > `Queue PPTC Rebuild`. - Game is not the right speed: right click on the games list > `Cache Management` > `Queue PPTC Rebuild`.
### Bayonetta 3 ### Bayonetta 3
- Stuck in training mode/loading screen in chapter 1: dump your game from your Switch console again, your file is corrupted. - Stuck in training mode/loading screen in chapter 1: dump your game from your Switch console again, your file is corrupted.
- Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory). - Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory).
- Audio desync during cutscenes: this is unavoidable as the game was not made with stutters in mind, rolling the whole cutscene audio and assuming the video will always play at the same speed. As a result of shader compilation and ASTC texture decoding, there will always be stutters during cutscenes, and the video will always fall behind the audio. In the future, when ASTC texture decoding and shader compilation are improved, it may be possible to minimize the stutters to a point where theyre not noticeable on a fast enough CPU. Currently, the only solution is to watch the cutscenes elsewhere or try to resync the video via speeding it up by toggling Vsync. - Audio desync during cutscenes: this is unavoidable as the game was not made with stutters in mind, rolling the whole cutscene audio and assuming the video will always play at the same speed. As a result of shader compilation and ASTC texture decoding, there will always be stutters during cutscenes, and the video will always fall behind the audio. In the future, when ASTC texture decoding and shader compilation are improved, it may be possible to minimize the stutters to a point where theyre not noticeable on a fast enough CPU. Currently, the only solution is to watch the cutscenes elsewhere or try to resync the video via speeding it up by toggling Vsync.
@ -594,7 +572,7 @@ Disable docked mode and `Direct Mouse Access`. Touch functionality will not work
- Player indicators are invisible. No solution as of yet. - Player indicators are invisible. No solution as of yet.
### Fire Emblem Engage ### Fire Emblem Engage
- Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory). - Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory).
- **There are reports of users corrupting their save files and being unable to progress through chapter 13 due to using certain mods**. Last reported batch of mods used on a broken save file were "arena 100 exp mod, playable emblems mod through cobalt, and battle outfits mod through cobalt". Beware of using these mods on your first playthrough. - **There are reports of users corrupting their save files and being unable to progress through chapter 13 due to using certain mods**. Last reported batch of mods used on a broken save file were "arena 100 exp mod, playable emblems mod through cobalt, and battle outfits mod through cobalt". Beware of using these mods on your first playthrough.
@ -604,9 +582,6 @@ Disable docked mode and `Direct Mouse Access`. Touch functionality will not work
### Kirby and the Forgotten Land ### Kirby and the Forgotten Land
- Do not use the “No DoF” mod available for this game, as it causes it to hang. - Do not use the “No DoF” mod available for this game, as it causes it to hang.
### Luigis Mansion 3
- Requires a [mod for disabling dynamic resolution](https://github.com/Ryujinx/Ryujinx/files/14937306/Disable-Dynamic-Resolution.zip) and running on game version 1.0.0 in order to attain the best possible performance.
### Mario Kart 8 Deluxe ### Mario Kart 8 Deluxe
- Crashing every other boot: select a default Mii. Having a custom Mii selected will crash every second time the game is launched. - Crashing every other boot: select a default Mii. Having a custom Mii selected will crash every second time the game is launched.
@ -626,7 +601,7 @@ Disable docked mode and `Direct Mouse Access`. Touch functionality will not work
- Requires a [mod for disabling FXAA (1.0.0)](https://cdn.discordapp.com/attachments/495758692495523854/896240412107345960/Disable_FXAA.7z) to better increase the resolution in docked mode. This mod is not needed if running on handheld mode. - Requires a [mod for disabling FXAA (1.0.0)](https://cdn.discordapp.com/attachments/495758692495523854/896240412107345960/Disable_FXAA.7z) to better increase the resolution in docked mode. This mod is not needed if running on handheld mode.
### Metroid Prime Remastered ### Metroid Prime Remastered
- Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory). - Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory).
### Monster Hunter Rise ### Monster Hunter Rise
- Crashing on the loading splash screen on the multiplayer build: you need LDN 3.0.0, as it's currently the only LDN build where Sunbreak (anything newer than 3.9.1) will run. (The game is playable on the main builds.) - Crashing on the loading splash screen on the multiplayer build: you need LDN 3.0.0, as it's currently the only LDN build where Sunbreak (anything newer than 3.9.1) will run. (The game is playable on the main builds.)
@ -637,10 +612,6 @@ Disable docked mode and `Direct Mouse Access`. Touch functionality will not work
- **Do not use LDN 3.0.0 for other games**, only for this one. - **Do not use LDN 3.0.0 for other games**, only for this one.
### Nintendo Switch Sports
- Crashing anywhere: you need this PR build https://github.com/Ryujinx/Ryujinx/pull/4047
- If the artifacts are expired, you'll need to [build it yourself](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-how-do-i-build-a-pr).
### Octopath Traveler II ### Octopath Traveler II
- Crashing on boot: disable ignore missing services, queue a PPTC rebuild, delete both caches if that doesn't work. - Crashing on boot: disable ignore missing services, queue a PPTC rebuild, delete both caches if that doesn't work.
@ -681,7 +652,7 @@ Disable docked mode and `Direct Mouse Access`. Touch functionality will not work
- Cant level up or get weapons: NSO is not supported and therefore its impossible to level up on Ryujinx. You need to download a save file with gear already unlocked or transfer your own from your Switch. - Cant level up or get weapons: NSO is not supported and therefore its impossible to level up on Ryujinx. You need to download a save file with gear already unlocked or transfer your own from your Switch.
### Super Mario Bros. Wonder ### Super Mario Bros. Wonder
- Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory). - Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory).
- Crashing on the LDN build: this game does **not** have LDN. If you would like to play multiplayer over the internet, use Parsec. - Crashing on the LDN build: this game does **not** have LDN. If you would like to play multiplayer over the internet, use Parsec.
@ -730,7 +701,7 @@ Disable docked mode and `Direct Mouse Access`. Touch functionality will not work
- Blurry graphics: the game uses both FSR and FXAA, which don't work that well with resolution scaling. You can use the mods included with [Ultracam](https://gamebanana.com/mods/480138) to workaround the issue. - Blurry graphics: the game uses both FSR and FXAA, which don't work that well with resolution scaling. You can use the mods included with [Ultracam](https://gamebanana.com/mods/480138) to workaround the issue.
- Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/Ryujinx/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory). - Crashing with `ErrorOutOfDeviceMemory`: [see above](https://github.com/GreemDev/Ryujinx/wiki/FAQ-and-Troubleshooting#-game-crashes-with-e-guirenderthread-application--unhandled-exception-caught-ryujinxgraphicsvulkanvulkanexception-unexpected-api-error-erroroutofdevicememory).
- Crashing with `ErrorDeviceLost`: this can happen on older Nvidia drivers, in which case update them to version **516.94** or newer, or use OpenGL. - Crashing with `ErrorDeviceLost`: this can happen on older Nvidia drivers, in which case update them to version **516.94** or newer, or use OpenGL.

137
Home.md

@ -1,143 +1,144 @@
<h1 align="center"> <h1 align="center">
<br> <br>
<a href="https://ryujinx.org/"><img src="https://i.imgur.com/eO8zXO3.png" alt="Ryujinx" width="150"></a> <img src="https://raw.githubusercontent.com/GreemDev/Ryujinx/master/distribution/misc/Logo.svg" alt="Ryujinx" width="150"></a>
<br> <br>
<b>Ryujinx-NX</b> <b>Ryujinx</b>
<br> <br>
<sub><sup><b>(REE-YOU-JINX-NX)</b></sup></sub> <sub><sup><b>(REE-YOU-JINX)</b></sup></sub>
<br> <br>
</h1> </h1>
<p align="center"> <p align="center">
Ryujinx is an open-source Nintendo Switch emulator, created by gdkchan, written in C#. Ryujinx is an open-source Nintendo Switch emulator, originally created by gdkchan, written in C#.
This emulator aims at providing excellent accuracy and performance, a user-friendly interface and consistent builds. This emulator aims at providing excellent accuracy and performance, a user-friendly interface and consistent builds.
It was written from scratch and development on the project began in September 2017. Ryujinx is available on Github under the <a href="https://github.com/Ryujinx/Ryujinx/blob/master/LICENSE.txt" target="_blank">MIT license</a>. <br /> It was written from scratch and development on the project began in September 2017.
Ryujinx is available on Github under the <a href="https://github.com/GreemDev/Ryujinx/blob/master/LICENSE.txt" target="_blank">MIT license</a>.
<br />
</p> </p>
<p align="center"> <p align="center">
<a href="https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml"> On October 1st 2024, Ryujinx was discontinued as the creator was forced to abandon the project.
<img src="https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml/badge.svg" This fork is intended to be a direct continuation for existing Ryujinx users.
Guides and documentation will not be provided at this time, though you can find the old ones on the Internet Archive.
</p>
<p align="center">
If you would like a version more true to original Ryujinx, check out <a href="https://github.com/ryujinx-mirror/ryujinx">ryujinx-mirror</a>.
</p>
<p align="center">
<a href="https://github.com/GreemDev/Ryujinx/actions/workflows/release.yml">
<img src="https://github.com/GreemDev/Ryujinx/actions/workflows/release.yml/badge.svg"
alt=""> alt="">
</a> </a>
<a href="https://crwd.in/ryujinx"> <a href="https://crwd.in/ryujinx">
<img src="https://badges.crowdin.net/ryujinx/localized.svg" <img src="https://badges.crowdin.net/ryujinx/localized.svg"
alt=""> alt="">
</a> </a>
<a href="https://discord.com/invite/VkQYXAZ"> <a href="https://discord.gg/dHPrkBkkyA">
<img src="https://img.shields.io/discord/410208534861447168?color=5865F2&label=Ryujinx&logo=discord&logoColor=white" <img src="https://img.shields.io/discord/1294443224030511104?color=5865F2&label=Ryujinx&logo=discord&logoColor=white"
alt="Discord"> alt="Discord">
</a> </a>
<br> <br>
<br> <br>
<img src="https://raw.githubusercontent.com/Ryujinx/Ryujinx-Website/master/public/assets/images/shell.png"> <img src="https://raw.githubusercontent.com/GreemDev/Ryujinx/refs/heads/master/docs/shell.png">
</p> </p>
<h5 align="center">
</h5>
## Compatibility ## Compatibility
As of November 2022, Ryujinx has been tested on approximately 3,800 titles; over 3,600 boot past menus and into gameplay, with roughly 3,200 of those being considered playable. As of May 2024, Ryujinx has been tested on approximately 4,300 titles;
You can check out the compatibility list [here](https://github.com/Ryujinx/Ryujinx-Games-List/issues). Anyone is free to submit a new game test or update an existing game test entry; simply follow the new issue template and testing guidelines, or post as a reply to the applicable game issue. Use the search function to see if a game has been tested already! over 4,100 boot past menus and into gameplay, with roughly 3,550 of those being considered playable.
Anyone is free to submit a new game test or update an existing game test entry;
simply follow the new issue template and testing guidelines, or post as a reply to the applicable game issue.
Use the search function to see if a game has been tested already!
## Usage ## Usage
To run this emulator, your PC must be equipped with at least 8GiB of RAM; failing to meet this requirement may result in a poor gameplay experience or unexpected crashes. To run this emulator, your PC must be equipped with at least 8GiB of RAM;
failing to meet this requirement may result in a poor gameplay experience or unexpected crashes.
See our [Setup & Configuration Guide](https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Configuration-Guide) on how to set up the emulator.
For our Local Wireless and LAN builds, see our [Multiplayer: Local Play/Local Wireless Guide
](https://github.com/Ryujinx/Ryujinx/wiki/Multiplayer-(LDN-Local-Wireless)-Guide).
Avalonia UI comes with translations for various languages. See [Crowdin](https://crwd.in/ryujinx) for more information.
## Latest build ## 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.** 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**.
If you want to see details on updates to the emulator, you can visit our [Changelog](https://github.com/Ryujinx/Ryujinx/wiki/Changelog). ## Documentation
The latest automatic build for Windows, macOS, and Linux can be found on the [Official Website](https://ryujinx.org/download).
If you are planning to contribute or just want to learn more about this project please read through our [documentation](docs/README.md).
## Building ## Building
If you wish to build the emulator yourself, follow these steps: If you wish to build the emulator yourself, follow these steps:
### Step 1 ### Step 1
Install the X64 version of [.NET 7.0 (or higher) SDK](https://dotnet.microsoft.com/download/dotnet/7.0).
Install the [.NET 8.0 (or higher) SDK](https://dotnet.microsoft.com/download/dotnet/8.0).
Make sure your SDK version is higher or equal to the required version specified in [global.json](global.json).
### Step 2 ### Step 2
Either use `git clone https://github.com/Ryujinx/Ryujinx` on the command line to clone the repository or use Code --> Download zip button to get the files.
Either use `git clone https://github.com/GreemDev/Ryujinx` on the command line to clone the repository or use Code --> Download zip button to get the files.
### Step 3 ### Step 3
To build Ryujinx, open a command prompt inside the project directory. You can quickly access it on Windows by holding shift in File Explorer, then right clicking and selecting `Open command window here`. Then type the following command: To build Ryujinx, open a command prompt inside the project directory.
`dotnet build -c Release -o build` You can quickly access it on Windows by holding shift in File Explorer, then right clicking and selecting `Open command window here`.
Then type the following command: `dotnet build -c Release -o build`
the built files will be found in the newly created build directory. the built files will be found in the newly created build directory.
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. 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 ## Features
- **Audio** - **Audio**
Audio output is entirely supported, audio input (microphone) isn't supported. We use C# wrappers for [OpenAL](https://openal-soft.org/), and [SDL2](https://www.libsdl.org/) & [libsoundio](http://libsound.io/) as fallbacks. Audio output is entirely supported, audio input (microphone) isn't supported.
We use C# wrappers for [OpenAL](https://openal-soft.org/), and [SDL2](https://www.libsdl.org/) & [libsoundio](http://libsound.io/) as fallbacks.
- **CPU** - **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. 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.
There are three memory manager options available depending on the user's preference, leveraging both software-based (slower) and host-mapped modes (much faster). The fastest option (host, unchecked) is set by default. 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 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. There are three memory manager options available depending on the user's preference, leveraging both software-based (slower) and host-mapped modes (much faster).
The fastest option (host, unchecked) is set by default.
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 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** - **GPU**
The GPU emulator emulates the Switch's Maxwell GPU using either the OpenGL (version 4.5 minimum), Vulkan, or Metal (via MoltenVK) APIs through a custom build of OpenTK or Silk.NET respectively. There are currently six graphics enhancements available to the end user in Ryujinx: Disk Shader Caching, Resolution Scaling, Anti-Aliasing, Scaling Filters (including FSR), Anisotropic Filtering and Aspect Ratio Adjustment. These enhancements can be adjusted or toggled as desired in the GUI. The GPU emulator emulates the Switch's Maxwell GPU using either the OpenGL (version 4.5 minimum), Vulkan, or Metal (via MoltenVK) APIs through a custom build of OpenTK or Silk.NET respectively.
There are currently six graphics enhancements available to the end user in Ryujinx: Disk Shader Caching, Resolution Scaling, Anti-Aliasing, Scaling Filters (including FSR), Anisotropic Filtering and Aspect Ratio Adjustment.
These enhancements can be adjusted or toggled as desired in the GUI.
- **Input** - **Input**
We currently have support for keyboard, mouse, touch input, JoyCon input support, and nearly all controllers. Motion controls are natively supported in most cases; for dual-JoyCon motion support, DS4Windows or BetterJoy are currently required. We currently have support for keyboard, mouse, touch input, JoyCon input support, and nearly all controllers.
Motion controls are natively supported in most cases; for dual-JoyCon motion support, DS4Windows or BetterJoy are currently required.
In all scenarios, you can set up everything inside the input configuration menu. In all scenarios, you can set up everything inside the input configuration menu.
- **DLC & Modifications** - **DLC & Modifications**
Ryujinx is able to manage add-on content/downloadable content through the GUI. Mods (romfs, exefs, and runtime mods such as cheats) are also supported; the GUI contains a shortcut to open the respective mods folder for a particular game. Ryujinx is able to manage add-on content/downloadable content through the GUI.
Mods (romfs, exefs, and runtime mods such as cheats) are also supported;
the GUI contains a shortcut to open the respective mods folder for a particular game.
- **Configuration** - **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. 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.
## Contact
If you have contributions, suggestions, need emulator support or just want to get in touch with the team, join our [Discord server](https://discord.com/invite/Ryujinx). You may also review our [FAQ](https://github.com/Ryujinx/Ryujinx/wiki/Frequently-Asked-Questions).
## Donations
If you'd like to support the project financially, Ryujinx has an active Patreon campaign.
<a href="https://www.patreon.com/ryujinx">
<img src="https://images.squarespace-cdn.com/content/v1/560c1d39e4b0b4fae0c9cf2a/1567548955044-WVD994WZP76EWF15T0L3/Patreon+Button.png?format=500w" width="150">
</a>
All developers working on the project do so in their free time, but the project has several expenses:
* Hackable Nintendo Switch consoles to reverse-engineer the hardware
* Additional computer hardware for testing purposes (e.g. GPUs to diagnose graphical bugs, etc.)
* Licenses for various software development tools (e.g. Jetbrains, IDA)
* Web hosting and infrastructure maintenance (e.g. LDN servers)
All funds received through Patreon are considered a donation to support the project. Patrons receive early access to progress reports and exclusive access to developer interviews.
## License ## License
This software is licensed under the terms of the <a href="https://github.com/Ryujinx/Ryujinx/blob/master/LICENSE.txt" target="_blank">MIT license.</a></i><br /> This software is licensed under the terms of the [MIT license](LICENSE.txt).
This project makes use of code authored by the libvpx project, licensed under BSD and the ffmpeg project, licensed under LGPLv3. This project makes use of code authored by the libvpx project, licensed under BSD and the ffmpeg project, licensed under LGPLv3.
See [LICENSE.txt](LICENSE.txt) and [THIRDPARTY.md](distribution/legal/THIRDPARTY.md) for more details. See [LICENSE.txt](LICENSE.txt) and [THIRDPARTY.md](distribution/legal/THIRDPARTY.md) for more details.
## Credits ## Credits
- [LibHac](https://github.com/Thealexbarney/LibHac) is used for our file-system. - [LibHac](https://github.com/Thealexbarney/LibHac) is used for our file-system.
- [AmiiboAPI](https://www.amiiboapi.com) is used in our Amiibo emulation. - [AmiiboAPI](https://www.amiiboapi.com) is used in our Amiibo emulation.
- [ldn_mitm](https://github.com/spacemeowx2/ldn_mitm) is used for one of our available multiplayer modes.
- [ShellLink](https://github.com/securifybv/ShellLink) is used for Windows shortcut generation.

File diff suppressed because it is too large Load diff