Skip to content

Releases: Ryubing/Ryujinx

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

1.2.59

27 Oct 22:39
1c3347c
Compare
Choose a tag to compare

Full Changelog: 1.2.58...1.2.59