mirror of
https://github.com/GreemDev/Ryujinx
synced 2024-11-22 01:43:23 +01:00
b2aad0a0fc
Some checks are pending
Release job / Create tag (push) Waiting to run
Release job / Release for linux-arm64 (push) Waiting to run
Release job / Release for linux-x64 (push) Waiting to run
Release job / Release for win-x64 (push) Waiting to run
Release job / Release MacOS universal (push) Waiting to run
Significant changes include LDN functionality from @Vudjun (no more separate build!) and an XCI trimmer from @amurgshere. Merged PRs in this release (in the order they were merged): #183, #150, #105, #160, #188, #98, #158, #13, #216, #73, #217, #122, #228, #65, #226, #236, #247, #243, #249, #242, #260, #273, #272, #262, #259, #241 ## Versioning: There now exists "stable" (release branch) and ["canary" (master branch)](https://github.com/GreemDev/Ryujinx-Canary/releases) versions. Instead of everyone using the same emulator, getting updates for every code change, you now *opt-in* to the more frequent updates by using the Canary version. Use stable and you'll get about an update a week, but that update will be MUCH more significant as it's the entire previous week's changes & PR merges. ## LDN LDN functionality is now merged! Use [this](https://github.com/GreemDev/Ryujinx/wiki/Multiplayer%E2%80%90(LDN%E2%80%90Local%E2%80%90Wireless)%E2%80%90Guide) to get started. Please note that LDN is only for local wireless; **this is not a Nintendo Switch Online emulation feature**. ## UI - Added an XCI trimmer (#105). - You can use this feature to trim dead bytes & the embedded firmware out of your dumped XCIs, to make them smaller. - If you right-click an XCI and the trim button it is greyed out, that means your XCI is already as small as possible. - Fix for fullscreen not being really fullscreen (#150) - Fix window sizing calculations when Show Title Bar is enabled (#247) - The "Install/Uninstall file types" buttons will be enabled/disabled depending on which one you contextually need; install will be clickable when they aren't installed, and vice versa. - Fix for showing default config screen when swapping players in controller settings (#122) - Command-line argument to prevent update checking `--hide-updates` (#272) - # RPC: - Added a LOT of game images to Discord RPC. - Play time will now show the time unit hours at a maximum. ## Localization - Update outdated/incorrect & added missing translations for zh-TW (#158) - Add many missing locale strings to all languages (#160) - Update & improve Korean translation (#226) - Minor fixes & add missing translations to Spanish translation (#242) ## Headless - Added `ignore-controller-applet` as an option you can configure via headless command-line options. ## Graphics Backend - ### Vulkan - fix divide-by-zero when recovering from missed draw (#235) - fixes crash in 'Baldo: The Guardian Owls' opening cutscene ## Horizon - fix crash that occurs when launching an NSP forwarder generated by Nro2Nsp (#237) # Nerd Zone Slightly more technical information. If you don't understand what's under here, no worry. - Updater now uses the release's Tag Name instead of its Name for version checking. - Baked in value change logging into ReactiveObject. - Split ConfigurationState into 3, smaller partial classes of the same name. - Specify if the current version is Canary in the version log line --------- Co-authored-by: James Duarte <GarnetSunset@users.noreply.github.com> Co-authored-by: Luke Warner <65521430+LukeWarnut@users.noreply.github.com> Co-authored-by: TheToid <amurgshere@gmail.com> Co-authored-by: GabCoolGuy <gabrielfreville@proton.me> Co-authored-by: Kekschen <52585984+Kek5chen@users.noreply.github.com> Co-authored-by: WilliamWsyHK <WilliamWsyHK@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jacobwasbeast <38381609+Jacobwasbeast@users.noreply.github.com> Co-authored-by: Piplup <100526773+piplup55@users.noreply.github.com> Co-authored-by: Vladimir Sokolov <tehnicalmailone@gmail.com> Co-authored-by: Jonas Henriksson <gr3ger@gmail.com> Co-authored-by: Vudjun <Vudjun@users.noreply.github.com> Co-authored-by: extherian <extherian@gmail.com> Co-authored-by: Hack茶ん <120134269+Hackjjang@users.noreply.github.com> Co-authored-by: EmulationEnjoyer <144477224+EmulationEnjoyer@users.noreply.github.com> Co-authored-by: Nicola <61830443+nicola02nb@users.noreply.github.com> Co-authored-by: jzumaran <juan.zumaran@gitz.cl> Co-authored-by: Pitchoune <yrigaud@icloud.com> Co-authored-by: Narugakuruga <31060534+Narugakuruga@users.noreply.github.com>
134 lines
7 KiB
Markdown
134 lines
7 KiB
Markdown
<h1 align="center">
|
|
<br>
|
|
<img src="https://raw.githubusercontent.com/GreemDev/Ryujinx/master/distribution/misc/Logo.svg" alt="Ryujinx" width="150"></a>
|
|
<br>
|
|
<b>Ryujinx</b>
|
|
<br>
|
|
<sub><sup><b>(REE-YOU-JINX)</b></sup></sub>
|
|
<br>
|
|
<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="">
|
|
</a>
|
|
<a href="https://github.com/GreemDev/Ryujinx/releases/latest">
|
|
<img src="https://img.shields.io/github/v/release/GreemDev/Ryujinx"
|
|
alt="Latest Release">
|
|
</a>
|
|
<br>
|
|
<a href="https://github.com/GreemDev/Ryujinx/actions/workflows/canary.yml">
|
|
<img src="https://github.com/GreemDev/Ryujinx/actions/workflows/canary.yml/badge.svg"
|
|
alt="">
|
|
</a>
|
|
<a href="https://github.com/GreemDev/Ryujinx-Canary/releases/latest">
|
|
<img src="https://img.shields.io/github/v/release/GreemDev/Ryujinx-Canary?label=canary"
|
|
alt="Latest Canary Release">
|
|
</a>
|
|
</h1>
|
|
|
|
<p align="center">
|
|
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.
|
|
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 align="center">
|
|
On October 1st 2024, Ryujinx was discontinued as the creator was forced to abandon the project.
|
|
<br>
|
|
This fork is intended to be a QoL uplift for existing Ryujinx users.
|
|
<br>
|
|
This is not a Ryujinx revival project. This is not a Phoenix project.
|
|
<br>
|
|
Guides and documentation can be found on the <a href="https://github.com/GreemDev/Ryujinx/wiki">Wiki tab</a>.
|
|
</p>
|
|
<p align="center">
|
|
If you would like a version more preservative fork of Ryujinx, check out <a href="https://github.com/ryujinx-mirror/ryujinx">ryujinx-mirror</a>.
|
|
</p>
|
|
|
|
<p align="center">
|
|
Click below to join the Discord:
|
|
<br>
|
|
<a href="https://discord.gg/dHPrkBkkyA">
|
|
<img src="https://img.shields.io/discord/1294443224030511104?color=5865F2&label=Ryubing&logo=discord&logoColor=white" alt="Discord">
|
|
</a>
|
|
<br>
|
|
<br>
|
|
<img src="https://raw.githubusercontent.com/GreemDev/Ryujinx/refs/heads/master/docs/shell.png">
|
|
</p>
|
|
|
|
## 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.
|
|
|
|
## Latest build
|
|
|
|
Stable builds are made every so often onto a separate "release" branch that then gets put into the releases you know and love.
|
|
These stable builds exist so that the end user can get a more **enjoyable and stable experience**.
|
|
|
|
You can find the latest stable release [here](https://github.com/GreemDev/Ryujinx/releases/latest).
|
|
|
|
Canary 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, these builds **may be unstable or completely broken**.
|
|
These canary builds are only recommended for experienced users.
|
|
|
|
You can find the latest canary release [here](https://github.com/GreemDev/Ryujinx-Canary/releases/latest).
|
|
|
|
## Documentation
|
|
|
|
If you are planning to contribute or just want to learn more about this project please read through our [documentation](docs/README.md).
|
|
|
|
## Features
|
|
|
|
- **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.
|
|
|
|
- **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.
|
|
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**
|
|
|
|
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**
|
|
|
|
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.
|
|
|
|
- **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.
|
|
|
|
- **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.
|
|
|
|
## License
|
|
|
|
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.
|
|
See [LICENSE.txt](LICENSE.txt) and [THIRDPARTY.md](distribution/legal/THIRDPARTY.md) for more details.
|
|
|
|
## Credits
|
|
|
|
- [LibHac](https://github.com/Thealexbarney/LibHac) is used for our file-system.
|
|
- [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.
|