Ryujinx v1.3.3 is released. 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 MIT license. On October 1st 2024, Ryujinx was discontinued as the creator was forced to abandon the project. This fork is intended to be a QoL uplift for existing Ryujinx users. This is not a Ryujinx revival project. This is not a Phoenix project.
Ryujinx Changelog:
Significant changes include:
Tears of the Kingdom 1.4.x & Breath of the Wild 1.8.x support (by @lotp)
(as well as other games using the new audio renderer revision, such as newer updates for the Nintendo Classics emulators)
LDN Game Viewer (by @greem)
Hollow Knight: Silksong is playable (by @lotp)
UI improvements in many areas (by @neo)
You can find a list of all Merge Requests merged in this release here.
UI:
LDN Game Viewer (by @greem)
Using much of the same UI code as the compatibility list, there is now an LDN Game Viewer you can use in-app.
You can apply filters to what games are shown, including only showing for games you own.
By default it does not show private/non-joinable (in-progress) games, however you can disable this in the filters section of the game viewer screen.
Consequently, since it does not show those games by default, they are now excluded from the count on the application list screen to line up with the amount of games shown by default LDN Game Viewer.
This was done since, for most people, a private game may as well not even exist. You need to know the passphrase to get in.
The same goes for non-joinable, these are likely people who are already fine with the amount of people in their game and decided to go ahead and start the game.
Amiibo Window Overhaul (by @VewDev) (!121)
The main improvement is that Amiibos are now displayed in a list in a dock on the left side, with the image of the selected one on the right, instead of a drop-down.
Additionally, "Only Amiibos available for this game" has been made clearer, and it will display all available Amiibos if no series is selected.
General UI improvements (by @neo)
Recolored compatibility labels (image)
Properly aligned text in multiple areas
keyboard keys in the hotkey screen (image)
checkboxes in many areas (image)
Improved User Inferface tab in Settings (before (image), after (image))
Fix the scroll logic in the Avalonia mouse driver never being 0 (by @MaxLastBreath)
Also automatically resets to sending 0 if there's no scroll event in 100ms
Added a fun "Ryubing" ASCII art to the console on startup.
Added the following games to Discord RPC asset images:
Hollow Knight: Silksong
Super Mario Galaxy
Super Mario Galaxy 2
Squeakross: Home Squeak Home
Updated the compatibility list:
Added:
AKIBA'S TRIP: Hellbound & Debriefed: Playable
AKIBA'S TRIP: Undead & Undressed Director's Cut: Playable
Eternights: Playable
FRONT MISSION 2: Remake: Playable
FRONT MISSION 3: Remake: Playable
High on Life: Menus
IronFall: Invasion: Playable
Super Mario Galaxy: Runs Slow, AMD GPU Bug
Super Mario Galaxy 2: Runs Slow, AMD GPU Bug, can deadlock
Prodeus: Playable
Pokémon Friends: Menus, crashes due to an HLE service issue.
Risk of Rain Returns: Playable
Shadows of the Damned: Hella Remastered: Playable
The DioField Chronicles: Playable
The Falconeer: Warrior Edition: Playable
The Legend of Nayuta: Boundless Trails: Ingame
Turbo Overkill: Playable
Undead Horde: Playable
Undead Horde 2: Playable
Changed:
Starlink: Battle for Atlas™ Digital Edition: Playable, removed all labels
Previously: Nothing, Crashes; Needs an update applied; HLE service issue.
DOOM 3: Added label slow
I18N:
Updates to Korean translation (by @Hackchan)
!56, !64, !100, !107, !122, !135, !136, !141
Update Simplified Chinese translation (by @shinyoyo)
!58, !104, !124, !133, !139
Update Traditional Chinese translation (by @WilliamWsyHK)
!85, !130
Update Russian translation (by @neo)
!103, !134
Update Swedish translation (by @yeager)
!66
Update French translation (by @neo)
!67
Emulation:
CPU & Memory:
Internally the memory tree structure nodes are now linked like linked list nodes. (by @lotp)
It turns out a lot of systems needed access to neighbor nodes, and traversing the trees each time was slow.
Added Object Pooling to a few classes. (by @lotp)
A few systems were spawning and deleting a ton of objects causing the Garbage Collector to run more than necessary. Now those objects get pooled and reused instead, cutting down on allocations and de-allocations.
Refactored RangeList and NonOverlappingRangeList. (by @lotp)
Turns out that most systems that used RangeList should actually be using NonOverlappingRangeList, and switching them over allowed the code to use more efficient overlap look-ups.
The classes now inherit from the RangeListBase class that has a few common helper functions.
Updated the NonOverlappingRangeList FindOverlap/FindOverlaps functions to be more efficient.
In the old classes the finder functions would binary search for the first overlap that matched the search range and then traverse the internal list left and right to find the list of overlapping items. This worked fine when 1 or 2 items overlapped, but caused lag spikes when a lot of items overlapped.
The new system uses BinarySearch algorithms that search for the first match, the leftmost match, the rightmost match and both the leftmost and rightmost matches for the functions FindOverlapFast, FindOverlap and FindOverlaps (all 3 variants).
The FindOverlaps now also has 3 variations: AsSpan, AsArray and AsNodes. The old function always copied an array of the overlapping items, which was fine for small lists, but was slow for large lists. Now you can use AsSpan if you just need fast read access to the overlapping items, AsNodes for quick access to the overlapping items with write access (with limitations) and the old AsArray for full write access.
Changed a few flag checks to use binary logic instead of the built-in HasFlag function. (by @lotp)
Turns out that a small allocation of a few bytes adds up over time when you call a function a few million times a second.
Reading fixed-size arrays as Span. (by @lotp)
The emulator uses a lot of fixed-size arrays for emulating Switch data structures, but C# doesn't (or at least didn't used to) have fixed-size arrays. Therefore the emulator needed its own implementation, and it works great.
There is a caveat however. The indexer called AsSpan, and did not attempt to retrieve or store any cached information.
As such, any time you used normal array indexer access on a Ryujinx fixed array, it created a new Span.
Similar to the HasFlag checks, this is normally not that big of a deal. However when you access the elements of the arrays a lot, and the emulator does, this gets insanely inefficient.
The emulator now caches a single Span when an array needs to access multiple pieces of data in a single array, which slightly improves efficiency.
The biggest effect was seen in playing videos, so if you had stutter playing videos (cut scenes, intros, etc.) you might get a smoother experience now.
Smaller code changes/improvements. (by @lotp)
Some code was made more readable.
Slight code changes for efficiency.
Audio:
Added support for rev15 audio rendering. (by @lotp)
Added support for float based Biquad Filters.
The updated audio renderer uses floats so we have to do so too.
Updated older systems to work with floats instead of shorts, older audio revision data will automatically be converted from short to float data.
Renamed classes and structs to match Nintendo's own names (Ongoing). (by @lotp)
Either Nintendo updated the names or we were just using similar names from the start.
The names have been changed to make future Reverse Engineering work easier, by not causing confusion when the names mismatch between data structures in the SDK and in Ryujinx.
GPU:
Intel Arc on Linux also has the push descriptors bug present on Windows and NVIDIA Pre-Turing.
It has been added to the HasPushDescriptorsBug helper function in ShaderCollection.cs.
Additionally, the check for IsIntelArc has been changed to a case-insensitive check as the trademark abbreviation on Linux is in lowercase.
HLE:
Basic event handle implementation for IApplicationFunctions CMIF ID 210. (by @lotp)
We don't know what the name of this function actually is yet, so it's called GetUnknownEvent in the code.
This is all that was needed for Hollow Knight: Silksong to boot in Ryubing.
Fixed an inaccuracy in the HID logic that caused some games to boot-loop due to the new SDK getting confused by bad input-state data. (by @lotp)
Nerd Zone:
The Ryujinx GDB Stub is back, courtesy of @coxxs! (!71, !106)
We have a guide setup, which you can find here.
Changed the default URL used for LDN to ldn.ryujinx.app. This is the same server as before, just using a more official domain.
CI/CD:
Support for downloading updates from GitHub has been removed entirely.
The updater logic has been migrated to use the first-class Client library component of the UpdateServer project.
Download:
Ryujinx v1.3.3
Source:Here
2025-10-13
Tags:
Console,
NintendoSwitch,
Official_Build,
Ryujinx

NewsLetter
Bookmark
Submit News
Email Us

Random Related Topic
0 Comments
Post a Comment
Can't post a comment? Try This!