Skip to content

Releases: Ryubing/Ryujinx

1.2.82

16 Feb 22:47
b16b844
Compare
Choose a tag to compare

Significant changes include:
DualSense/DualShock 4 LED customization (by @Otozinclus, UI by @GreemDev),
PPTC Profiles (by @LotP1),
Dynamic Discord Rich Presence support for select games (system by @GreemDev, many more games added by @piplup55)

Merged PRs in this release (in the order they were merged):
#572, #583, #568, #578, #569, #589, #370, #590, #599, #592, #601, #614, #612, #625, #624, #630, #618, #638, #642, #615,
#649, #650, #633, #626, #594, #658, #664, #661, #662, #666

UI:

  • Changed the Match System Time button to a toggle which will launch games with a time value equal to your current time. (by @GreemDev)
    • You still need to set the time zone according to your real location in order for the time in games to match reality.
      • I might look into detecting that when Match System Time is enabled, too.
  • Focus Loss mode (by @GreemDev)
    • When you tab off of Ryujinx, you can choose something for Ryujinx to do to reduce resource usage / annoyance while not focused on the emulator.
    • Current choices are:
      • Block Controller Input
      • Mute Volume
      • Block Controller Input and Mute Volume
      • Pause Emulation
    • When you tab back in, this system undoes the action it performed.
  • Background Update Checker mode (by @GreemDev, inspired by RPCS3)
    • Checks for updates on startup and shows a button in the bottom status bar of the window next to the Firmware Version when not in a game.
  • Game compatibility information has been put underneath the version in the List view. (by @GreemDev)
    • It is clickable, and opens the game's entry in the compatibility list.
    • You can hover it to see the list of labels that the game has, and for a description as to what the status means.
  • You now have access to a new option when right clicking on an application: Show Game Info.
    • This shows all of the information previously only visible on List view in a popup dialog.
    • Game compatibility information is also clickable in this popup.
    • This also shows previously internal information, such as games with registered Discord RPC asset images.
  • Pretty Atmosphère mod names (by @GreemDev)
  • Renamed Ignore Applet to Ignore Controller Applet.
    • This option only ever ignored the controller applet specifically, and no others.
  • Fix dialog symbols being reversed on Right to Left languages.
  • The Mod Manager is now capable of displaying mods available for installed DLC content.
  • Added --backend-threading argument for launching games via shortcut/command line. (#599)
  • Added the following games to Discord RPC asset images:
    • Arcade Archives VS. SUPER MARIO BROS.
    • Bluey: The Video Game
    • Brawlhalla
    • Divinity Original 2 - Definitive Edition
    • Minecraft
    • Monopoly
    • Risk
    • Stardew Valley
    • Super Bomberman R
    • Titan Quest
    • Valkyria Chronicles 4

Input (SDL2):

  • DualSense & DualShock 4 LED customization (#572) (by @Otozinclus, UI by @GreemDev)
    • Added the ability to change the LED on your LED-enabled controllers (only ones I know of that work are PS controllers)
    • You can choose any RGB value, or turn it off entirely on DualSenses (DualShock 4s ignored the request to turn off in testing)
    • You can also make it cycling rainbow! Speed of change is customizable but applies to every controller using rainbow.

CPU:

  • PPTC Profiles (#370) (by @LotP1)
    • Allows games with previously unsupported ExeFS mods to use the PPTC system, without causing incompatibilities with other sets of ExeFS mods or the base game's caches.
    • Improves the boot times of your games and drastically reduces the amount of repeated work your system needs to do every time you launch a game.
    • The most notable benefit with this change is PPTC support with the best way to play Tears of the Kingdom in an emulator: the Optimizer!
  • JIT Cache Regions (#615) (by @FluffyOMC)
    • Instead of pre-allocating 2GB of memory for the JIT cache, it is now divided into many regions of 256MB.
    • If more than 256MB is needed, it will create a new region.
      • This can keep going, past 2GB total.
    • This allows games that need more than 2GB for JIT Cache to continue and not crash, and allows for games which don't need that much JIT cache to be lighter on memory usage.
    • This has nothing to do with disk/hard drive/SSD usage.

I18N:

Improved Simplified Chinese translation (#568, #578, #590, #642, #650)
Updated Korean translation (#624)
Updated Swedish translation (#594)
Updated Norwegian translation (#658)
Updated Brazilian Portuguese translation (#633, #666)
Updated German translation (#626)

HLE:

  • Play Report Analysis (system & API by @GreemDev, formatter implementations for various games from @FluffyOMC, @piplup55, @GreemDev)
    • Allows you to listen to values in Play Reports and format them in a multitude of ways.
      • Currently only used for Dynamic Discord RPC, on specific games.
      • You can see the games that support it by right-clicking on the game in Ryujinx and clicking "Show Game Info."
        • Hovering the support indicator shows you what value(s) are formatted for Discord RPC.

LDN:

  • Increased the NAT discovery timeout for those with slower internet (#589)

Headless:

  • Default to Vulkan instead of OpenGL

Infra:

  • Updated CI scripts to Ubuntu 24.04 due to GitHub deprecating 20.04 in April.

Nerd Zone:

  • Raised minimum required Windows 10 version.
    • This mostly has no effect, since versions which fall under the threshold can't even boot the app anymore due to .NET 9 CET Enforcement.
  • Removed all usages of var everywhere in the project.
  • Use target-typed new (i.e. byte someByte = new()) everywhere in the project.
  • Use collection expressions everywhere in the project.
  • Collapsed all GeneratedRegexes into a common utility class.
  • Here's the implementation for the Play Report Analyzer system.
Platform Artifact
Windows 64-bit Stable Windows Artifact
Linux 64-bit Stable Linux Artifact
Linux ARM 64-bit Stable Linux ARM Artifact
macOS Stable macOS Artifact

Full Changelog: 1.2.81...1.2.82

1.2.81

22 Jan 15:33
Compare
Choose a tag to compare

This is a relatively minor bugfix release, published to fix the fact that on case-sensitive file systems, shader cache and CPU cache would be stored in different folders, and potentially ignore your previous shader cache.

Other changes include:

  • A slightly more up to date embedded compatibility list
  • The ability to dump DLC RomFS
  • Option to hide the UI automatically when a game launches (#462)
  • Added a game library Title ID sort method (#553)
  • Visually merge "Actions" and "Tools" into one. The items in this list change depending on whether you're in a game.
  • Fix for the Amiibo keybind (Ctrl + A) only working after the Scan an Amiibo button's enabled state had been updated.
    • Previously it checked that state. Now it just directly checks if the emulated Switch is scanning for an Amiibo.

1.2.80 changelog

Significant changes include:
Embedded Compatibility List viewer (by @GreemDev),
Migration to .NET 9 (by @marco-carvalho),
The Experimental Metal Backend (by @IsaacMarovitz, work repurposed, rebased, and merged in by @GreemDev),
Ability to read/write amiibo .bin files (by @Jacobwasbeast),
Unified locales (by @LotP1),
Headless in Avalonia (by @GreemDev), and
Swedish localization (by @yeager)

Merged PRs in this release (in the order they were merged):
#198, #348, #391, #412, #296, #420, #422, #424, #427, #430, #432, #415, #418, #441, #447, #446, #450, #440, #448, #469, #460, #428, #444, #470, #472, #471, #465, #461, #475, #480, #481, #497, #507, #505, #517, #515, #519, #203, #524, #502, #489, #503, #531, #314, #375, #513, #538, #537, #541, #543, #545

UI:

  • Fix for updates not being autoloaded
  • PlayerSelect applet (#537)
    • Allows you to play Minecraft Nintendo Switch Edition, and Diablo 3 with multiple local players.
      • Those are just the 2 games I know of that use this. There's probably others.
  • Compatibility List Viewer
    • You can access this via Help > Open Compatibility List. You can search for games you're interested in, and it only shows the games you actually own by default.
    • This functionality has also been opened as a PR on ryujinx-mirror.
  • Headless in Avalonia
    • There is no longer a dedicated headless/nogui build. It's now integrated directly into the standard Avalonia build.
    • This was done to reduce confusion on what file to download, while also still allowing the users who use headless to continue using it.
      • There's even the ability to inherit your main Ryujinx's config, input settings & last used emulated Switch profile!
    • You can access headless Ryujinx by invoking Ryujinx via the command line with the first argument being --no-gui or nogui. The following should then be your old Headless script content, additionally with --use-main-config for the config inheritance mentioned above.
  • Play Time in the UI now caps out at showing hours. It shows seconds at the least. If less than a second it will act like it was never played.
  • You can now click on the Title IDs of games in the UI and they will be copied to your clipboard.
  • There is now a button in settings you can click which will resync the time in Ryujinx to match your system's.
    • Note that this is not an active setting, it just sets the time to the current time. It can still fall out of sync.
  • Intel Mac Warning
    • On every boot, and only one time during that session, you will be warned that Intel Macs are not supported, if you are running Ryujinx on one.
  • Discord RPC:
    • Added Goat Simulator 3 asset image

I18N:

  • Russian translation update (#450)
  • Entire Swedish translation (#446, #513)
  • Ukrainian translation update (original: #488)
  • Korean translation updates (#422, #465, #502)
  • Norwegian translation updates (#418, #503, #538)
  • French translation update (#415)
  • Simplified Chinese translation updates (#440, #375)
  • Italian translation update (#489)

Graphics:

  • Experimental Metal Backend
    • The label "experimental" is not for show! More games don't work than do.
    • If you're on an ARM Mac and want to get the best out of Metal without trial & error, set the graphics backend to Auto.
    • Using Auto on a Mac will use Vulkan for most games, and use Metal on the games it's known to work better than Vulkan + MoltenVK in.
    • There is currently a known bug where shader translation from Vulkan to Metal will eventually freeze.
      • To alleviate this, you can simply keep trying. It does do some translations before it freezes.
      • You can also delete or move your Vulkan cache to another location to start fresh to avoid this issue entirely.
  • Vulkan
    • Resolve Image Usage Validation Error (#296)

HLE:

  • Stub IHidServer SetGestureOutputRanges (#524)
    • Lets the new Donkey Kong game, Donkey Kong Country Returns HD, boot.
  • Throw a more descriptive error when the loaded processes doesn't contain a process with key matching _latestPid (likely missing Firmware).

Infra:

  • Various NuGet package updates (#203)
  • Update the mac release script to use LLVM 17 (#519)

Nerd Zone:

  • Removed a lot of manual observable properties in many ViewModels and replaced them with the CommunityToolkit.Mvvm ObservableProperty autogenerated ones to reduce the size of the view model files.
  • Use UnmanagedCallersOnly for ARMeilleure delegates.
  • The repeated <Border>s in MainStatusBarView have been turned into a reusable Avalonia Control: MiniVerticalSeparator
  • ConfigurationState migration is now defined in a map of version => migrator function; to reduce code duplication.
  • DiscordIntegrationModule now changes the current playing game state based on when TitleIds.CurrentApplication changes; instead of directly being invoked when a change is needed.
  • Removed Ryujinx.UI.Common: it existed because previously the project had 2 different UI layers you could use; GTK and Avalonia. We only support Avalonia now and will probably never support another framework.
  • The logic for launching an applet, such as miiEdit, has been abstracted into a utility class called AppletMetadata.
Platform Artifact
Windows 64-bit Stable Windows Artifact
Linux 64-bit Stable Linux Artifact
Linux ARM 64-bit Stable Linux ARM Artifact
macOS Stable macOS Artifact

Full Changelog: 1.2.80...1.2.81

1.2.80

20 Jan 03:23
a1c0c70
Compare
Choose a tag to compare

Significant changes include:
Embedded Compatibility List viewer (by @GreemDev),
Migration to .NET 9 (by @marco-carvalho),
The Experimental Metal Backend (by @IsaacMarovitz, work repurposed, rebased, and merged in by @GreemDev),
Ability to read/write amiibo .bin files (by @Jacobwasbeast),
Unified locales (by @LotP1),
Headless in Avalonia (by @GreemDev), and
Swedish localization (by @yeager)

Merged PRs in this release (in the order they were merged):
#198, #348, #391, #412, #296, #420, #422, #424, #427, #430, #432, #415, #418, #441, #447, #446, #450, #440, #448, #469, #460, #428, #444, #470, #472, #471, #465, #461, #475, #480, #481, #497, #507, #505, #517, #515, #519, #203, #524, #502, #489, #503, #531, #314, #375, #513, #538, #537, #541, #543, #545

UI:

  • Fix for updates not being autoloaded
  • PlayerSelect applet (#537)
    • Allows you to play Minecraft Nintendo Switch Edition, and Diablo 3 with multiple local players.
      • Those are just the 2 games I know of that use this. There's probably others.
  • Compatibility List Viewer
    • You can access this via Help > Open Compatibility List. You can search for games you're interested in, and it only shows the games you actually own by default.
    • This functionality has also been opened as a PR on ryujinx-mirror.
  • Headless in Avalonia
    • There is no longer a dedicated headless/nogui build. It's now integrated directly into the standard Avalonia build.
    • This was done to reduce confusion on what file to download, while also still allowing the users who use headless to continue using it.
      • There's even the ability to inherit your main Ryujinx's config, input settings & last used emulated Switch profile!
    • You can access headless Ryujinx by invoking Ryujinx via the command line with the first argument being --no-gui or nogui. The following should then be your old Headless script content, additionally with --use-main-config for the config inheritance mentioned above.
  • Play Time in the UI now caps out at showing hours. It shows seconds at the least. If less than a second it will act like it was never played.
  • You can now click on the Title IDs of games in the UI and they will be copied to your clipboard.
  • There is now a button in settings you can click which will resync the time in Ryujinx to match your system's.
    • Note that this is not an active setting, it just sets the time to the current time. It can still fall out of sync.
  • Intel Mac Warning
    • On every boot, and only one time during that session, you will be warned that Intel Macs are not supported, if you are running Ryujinx on one.
  • Discord RPC:
    • Added Goat Simulator 3 asset image

I18N:

  • Russian translation update (#450)
  • Entire Swedish translation (#446, #513)
  • Ukrainian translation update (original: #488)
  • Korean translation updates (#422, #465, #502)
  • Norwegian translation updates (#418, #503, #538)
  • French translation update (#415)
  • Simplified Chinese translation updates (#440, #375)
  • Italian translation update (#489)

Graphics:

  • Experimental Metal Backend
    • The label "experimental" is not for show! More games don't work than do.
    • If you're on an ARM Mac and want to get the best out of Metal without trial & error, set the graphics backend to Auto.
    • Using Auto on a Mac will use Vulkan for most games, and use Metal on the games it's known to work better than Vulkan + MoltenVK in.
    • There is currently a known bug where shader translation from Vulkan to Metal will eventually freeze.
      • To alleviate this, you can simply keep trying. It does do some translations before it freezes.
      • You can also delete or move your Vulkan cache to another location to start fresh to avoid this issue entirely.
  • Vulkan
    • Resolve Image Usage Validation Error (#296)

HLE:

  • Stub IHidServer SetGestureOutputRanges (#524)
    • Lets the new Donkey Kong game, Donkey Kong Country Returns HD, boot.
  • Throw a more descriptive error when the loaded processes doesn't contain a process with key matching _latestPid (likely missing Firmware).

Infra:

  • Various NuGet package updates (#203)
  • Update the mac release script to use LLVM 17 (#519)

Nerd Zone:

  • Removed a lot of manual observable properties in many ViewModels and replaced them with the CommunityToolkit.Mvvm ObservableProperty autogenerated ones to reduce the size of the view model files.
  • Use UnmanagedCallersOnly for ARMeilleure delegates.
  • The repeated <Border>s in MainStatusBarView have been turned into a reusable Avalonia Control: MiniVerticalSeparator
  • ConfigurationState migration is now defined in a map of version => migrator function; to reduce code duplication.
  • DiscordIntegrationModule now changes the current playing game state based on when TitleIds.CurrentApplication changes; instead of directly being invoked when a change is needed.
  • Removed Ryujinx.UI.Common: it existed because previously the project had 2 different UI layers you could use; GTK and Avalonia. We only support Avalonia now and will probably never support another framework.
  • The logic for launching an applet, such as miiEdit, has been abstracted into a utility class called AppletMetadata.
Platform Artifact
Windows 64-bit Stable Windows Artifact
Linux 64-bit Stable Linux Artifact
Linux ARM 64-bit Stable Linux ARM Artifact
macOS Stable macOS Artifact

1.2.78

19 Dec 06:26
Compare
Choose a tag to compare

Significant changes include:
JIT Sparse Function Table (original work by @riperiperi, work repurposed & PR opened by @LotP1),
Custom Refresh Rate (original work by @jcm93, work repurposed & PR opened by @KeatonTheBot),
A fix for the min/max/close controls being too wide on Windows with the new title bar (by @Daninator1),
And a prod.keys installer helper (by @nicola02nb).

Merged PRs in this release (in the order they were merged):
#280, #282, #285, #258, #281, #250, #309, #310, #238, #313, #311, #95, #302, #257, #233, #329, #319, #330, #331, #339, #340, #352, #353, #332, #343, #342, #363, #356, #371, #338, #381, #383

UI

  • Adapt accent color to the system theme
    • Works flawlessly on Windows, and has support on Linux depending on your system configuration.
  • Moved shader compilation hint, current GPU, and graphics backend to the right side of the status bar, next to the firmware version.
  • Moved to a new icon made by @matthew-5pl in #381, which is now used everywhere
  • Removed the "Game:" prefix in front of the FPS counter.
  • Fix missing total DLC count in the Manage DLC window.
  • When clicking the Check for Updates button, it will allow you to click a button to open the changelog of the current version.
    • When an update is incoming this button is also present, to show you what the new version has.
  • Fix Github & Discord icons getting cuttoff in the About window (#310)
  • The about window now has my name and my name only under the maintainer section, and moved the other names previously there below it to "Formerly Maintained By"
    • This was done to clear up confusion that the OG maintainers are involved, when they are not.
  • Added FAQ, Setup, and LDN guides to the "Help" menu dropdown (#383)
  • RPC:
    • Added the following games:
      • Diablo 3 Eternal Collection
      • TSUKIHIME -A piece of blue glass moon-

I18N

HLE

  • Cabinet applet (#340)
  • Custom refresh rate mode (#238)
    • This does not magically make games able to run at higher framerates without mods.

    • This is more akin to a framelimiter, for games which don't have such restrictions, or for when you have mods which enable such framerates.

Nerd Zone

  • Collapsed XCIFileTrimmerLog implementations into one static class with 2 inner classes.
  • Added firmware prefix when the firmware application is loaded
    • Additionally allowed providing custom application names & versions, namely for firmware applications.

ARMeilleure

  • JIT Sparse Function Table (#250)
    • Minor performance increase in some games, bigger increase in others.
    • Degrades performance on systems with DDR3 memory.
  • Mario Kart Live: Home Circuit now boots (#331, #353)
  • Super Tux Kart latest preview now boots (#280, #339)

Vulkan

  • Fix PushDescriptors logic (#257)
Platform Artifact
Windows 64 bit Release Windows Artifact
Linux 64 bit Release Linux Artifact
Linux arm 64 bit Release Linux arm Artifact
macOS Release macOS Artifact

1.2.76

19 Nov 16:33
Compare
Choose a tag to compare

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) 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 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

1.2.75

19 Nov 15:42
Compare
Choose a tag to compare

Full Changelog: 1.2.72...1.2.75

1.2.72

03 Nov 19:59
5ff962b
Compare
Choose a tag to compare

Full Changelog: 1.2.69...1.2.72

1.2.69

01 Nov 21:17
Compare
Choose a tag to compare

Full Changelog: 1.2.67...1.2.69

1.2.67

01 Nov 11:47
9305d17
Compare
Choose a tag to compare

Full Changelog: 1.2.64...1.2.67

1.2.64

30 Oct 07:23
70b7c4c
Compare
Choose a tag to compare

Full Changelog: 1.2.59...1.2.64