Changelog - samuelpx/Ryujinx GitHub Wiki
All updates to the Ryujinx official master build will be documented in this file.
For 1.0.x releases, see here.
- infra: Make Avalonia the default UI.
- Replaces the old GTK user interface with the Avalonia-based UI as the default on Windows and Linux (macOS already had it). Avalonia has feature parity with GTK, plus the following differences:
- Volume level can now be adjusted from the bottom status bar.
- Default controller profile will now be automatically loaded upon selecting a new controller.
- Improved the controller applet considerably, with a menu button to go directly into input settings.
- Added a customizable grid view for the games list.
- Added a game loading screen which displays PPTC and shader cache progress.
- Added configurable hotkeys for vsync toggle (framerate limiter), screenshots, mute/unmute audio, increase/decrease volume and increase/decrease resolution.
- Added a save manager under Options > Manage User Profiles. Allows for easy file deletion and quick save folder opening. Also adds an option to restore deleted user profiles using existing saves. (Backup/restore functionality is still being worked on.)
- Added Brazilian Portuguese, Castilian Spanish, French, German, Greek, Hebrew, Italian, Japanese, Korean, Polish, Russian, Simplified Chinese, Traditional Chinese, Turkish and Ukrainian localizations for UI text.
- Fixes issues with emulator files not being properly extracted sometimes.
- Fixes an issue where PCs with 2 graphics cards (especially laptops) wouldn't properly detect the GPU, crashing on boot.
- Fixes the occasional "GTK Critical" crash when double-clicking to run games.
- Fixes a crash where some games, such as the Monster Hunter series, would error out when bringing up the software keyboard due to missing fonts in the system.
- Fixes an extremely rare issue where attempting to install firmware would freeze Ryujinx.
- Many, many more smaller changes.
- Avalonia: only enable gamescope workaround under it.
- Fixes a regression from 1.1.1203 that caused Avalonia's drop-down menus to not show until after several clicks on some Linux installations.
- Change packed aliasing formats to UInt.
- On AMD GPUs, fixes graphical glitches in CEIBA, Wet Steps and Yokai Watch 1.
- nuget: bump System.Drawing.Common from 8.0.1 to 8.0.2.
- Dependency update. No expected user-facing changes.
- IPC code gen improvements.
- Code cleanup. No expected changes in games.
- Migrate Audio service to new IPC.
- Fixes missing sound in Unicorn Overlord Demo.
- Fixes an issue where emulator volume would get reset to 100% in certain games that set custom volumes (tested with River City Girls Zero).
- OpenGL: Mask out all color outputs with no fragment shader.
- Fixes shadows in Penny's Big Breakaway on OpenGL.
- Ensure service init runs after Horizon constructor.
- Fixes an uncommon crash when launching games after stopping emulation multiple times.
- Implement virtual buffer dependencies.
- Fixes model flickering in Apollo Justice: Ace Attorney Trilogy on macOS and OpenGL.
- Allows Monster Hunter Rise: Sunbreak to go in-game on macOS.
- Vulkan: Properly reset barrier batch when splitting due to mismatching flags.
- Fixes a regression from 1.1.1205 that caused several games to crash.
- Vulkan: Disable push descriptors on older NVIDIA GPUs.
- Fixes a regression from 1.1.1198 that caused rendering issues on Nvidia GPU series 1000 and older.
- Vulkan: Fix barrier batching past limit.
- Fixes a regression from 1.1.1199 that caused some games to freeze.
- Avalonia UI: Update English tooltips.
- Updates a few settings tooltips on the Avalonia UI to better explain what the settings do.
- Avalonia: Fix gamescope once and for all.
- Fixes Avalonia context menus not showing on the Steam Deck's gaming mode.
- LightningJit: Add a limit on the number of instructions per function for Arm64.
- Fixes a crash in Bluey: The Videogame with LightningJit.
- hid: Stub SetTouchScreenResolution.
- Allows Tomb Raider I-III Remastered to go in-game without enabling "Ignore Missing Services".
- Vulkan: Improve texture barrier usage, timing and batching.
- Fixes graphical issues on the Turnip Mesa driver in Mario Kart 8 Deluxe, Super Mario Odyssey and other games.
- Fixes Bayonetta Origins: Cereza and the Lost Demon water surfaces on Vulkan on desktop GPUs.
- Vulkan: Use push descriptors for uniform bindings when possible.
- Improves Vulkan performance significantly on AMD Mesa drivers and to a lesser degree on AMD Windows drivers.
- May improve stability on more underpowered systems.
- Implement X8Z24 texture format.
- Fixes some lighting issues on Tomb Raider I-III Remastered.
- Fix PermissionLocked check on UnmapProcessCodeMemory.
- Fixes a crash on Tomb Raider I-III Remastered when the game is changed on the selection menu.
- Remove Vulkan SubgroupSizeControl enablement code.
- Fixes a crash when trying to run the emulator with Dozen (Vulkan emulated with Direct3D) driver on Windows.
- Stub VSMS related ioctls.
- Fixes a crash when starting Tomb Raider I-III Remastered. It still requires enabling the "ignore missing services" option to run.
- Updaters: Fix ARM Linux Updater.
- Allows the auto-updater to work on Arm64 Linux.
- Handle exceptions when checking user data directory for symlink.
- Fixes a crash introduced on version 1.1.1191 when the emulator is started for the first time.
- macOS: Stop storing user data in Documents for some users; fix symlinks.
- Stops storing user data in Documents for some users on macOS and fixes symlinks.
- Force add linux-x64 apphost in flathub nuget source
- Some misc changes to handle deployment on flatpak for arm64.
- Restore Nuget packages for linux-arm64 for Flatpak
- Some misc changes to handle deployment on flatpak for arm64.
- Add Open Mod Dir button again
- Add the Open Mod Dir button again on Avalonia
- Capitalisation Consistency
- Some misc code cleanup
- Standardize logging locations across desktop platforms
- Create logs in a more logical path depending on the platform
-
%APPDATA%\Ryujinx\Logs
on Windows. -
~/.config/Ryujinx/Logs
on Linux. -
~/Library/Logs/Ryujinx
(or~/Library/Application Support/Ryujinx/Logs
) on macOS.
-
- Create logs in a more logical path depending on the platform
- Reorder available executables in Ryujinx.sh
- Avoid Ryujinx.Headless.SDL2 as a last resort in Ryujinx.desktop when you have more than one executable installed
- Remove ReflectionBinding in Mod Manager
- Some cleanup in the mod manager on Avalonia
- Update Avalonia About Window
- Fix minor style issue in the about window on Avalonia
- Fix mip offset/size for full 3D texture upload on Vulkan
- Fix broken water in Hyrule Warriors Age of Calamity
- Retrigger CI after failure of complete release
- Add missing RID exclusions for linux-arm64
- Clean up unrelated libraries from linux-arm64 release tar
- Enable Linux ARM64 on build and release
- We now provide linux-arm64 builds
- Set PointSize in shader on OpenGL
- Fix possible undefined behaviour on some drivers
- Make IOpenGLContext.HasContext context dependent
- Fix SDL2 headless on Wayland
- Load custom SDL mappings from application data folder
- Fix regression on macOS for SDL_GameControllerDB.txt loading path
- Force CPU copy for non-identity DMA remap
- Fix some bugs with inverted RGBA components on the game 30XX
- Update Ryujinx.Graphics.Nvdec.Dependencies to 5.0.3-build14
- Add linux-arm64 and update to ffmpeg 5.0.3
- Revert Avalonia bump
- X popup position broke entirely
- Remove SDC.
- Removes remaining usages of System.Drawing.Common.
- LightningJit: Reduce stack usage for Arm32 code.
- Significantly reduces stack usage in some cases.
- Fixes a crash in Gothic.
- Remove Vic Reference to Host1x.
- Cleanup. No expected changes.
- GPU: Implement BGR10A2 render target format.
- Improves rendering on Infinite Tanks World War 2.
- Bump Ava.
- Dependency update. Fixes windows not appearing in Gamescope. (SteamOS Game Mode)
- nuget: bump Microsoft.NET.Test.Sdk from 17.8.0 to 17.9.0.
- Dependency update. No expected changes.
- GUI: Replace Flex Panels in favor of Wrap Panels for Avalonia.
- Allows keyboard navigation in grid view, improves consistency, and removes a dependency.
- GPU: Clamp vertex buffer size to mapped size if too high.
- Fixes crash in Infinite Tanks World War 2 and Blades of Time.
- chore: Update Ryujinx.SDL2-CS to 2.30.0.
- Dependency update. No expected changes.
- Redact usernames from logs.
- Improves user privacy in logs by redacting usernames.
- HLE/SERVICES: Cache AccountService token data.
- Fixes low framerates in games that request token data often, such as Monopoly for Nintendo Switch.
- GUI: Fix crash when window is moved after a modal is dismissed.
- Fixes a crash that could occur if the main window's position was changed if a modal was dismissed beforehand on Ava UI.
- nuget: bump SPB from 0.0.4-build28 to 0.0.4-build32.
- Dependency update. No expected changes.
- GPU: Revert change to skip flush when range size is 0.
- Fixes a regression caused by 1.1.1066 in Sonic Team Racing.
- GPU: Fix depth compare value for TLD4S shader instruction with offset.
- Fixes shadows in Hotshot Racing.
- GPU: Remove component operand for texture gather with depth compare.
- Fixes a crash in Hotshot Racing on Vulkan.
- Limit remote closed session removal to SM service.
- Fixes a regression caused by 1.1.1155 in "multi-program" games (e.g. Super Mario 3D All-Stars).
- Ensure SM service won't listen to closed sessions.
- Resolves a bug where titles that use the JIT service (e.g. N64 NSO) would fail to boot after 1.1.1131.
- Vulkan: Add Render Pass / Framebuffer Cache.
- Reduces driver specific costs for render pass/framebuffer re-creation.
- nuget: bump Microsoft.IdentityModel.JsonWebTokens from 7.2.0 to 7.3.0.
- Dependency update. No expected changes.
- Fix opening the wrong log directory.
- "Open Log directory" button now opens the correct log directory again.
- Fix exception when trying to read output pointer buffer size.
- Fixes a crash caused by the friend service IPC migration in Animal Crossing: New Horizons.
- Cpu: Implement Vpadal and Vrintr instructions.
- Adds implementations for the above CPU instructions to the JIT.
- Required by Super Putty Squad and potentially other 32-bit titles.
- deps: Update Avalonia.Svg.
- Dependency update. No expected user changes.
- Ava UI: Mod Manager Fixes (Again).
- Fixed an error message typo.
- Fixed deleting mods from directories.
- Fixed deleting non-subdirectory mods.
- Fixed excessive looping if parent directory found.
- UI: Clarify Create Application Shortcut tooltip text.
- Accurate information on where a shortcut is being created is now present on macOS releases.
- Avalonia: Fix dialog issues caused by 1.1.1105.
- Fixes a bug where multiple dialogs could be open at the same time and cause a deadlock.
- Migrate friends services to new IPC.
- Remaining friend services migrated and implemented/stubbed if required.
- No expected changes in games.
- Make config filename changable for releases & Log to Ryujinx directory if application directory is not writable.
- Adjustments to where logs and other configuration files are stored under certain environments.
- Most platforms will be unaffected**.
**INFO: This change has temporarily caused the wrong directory to open when selecting File->Open Log folder. If you need to access logs before this is fixed, they will be in a folder next to where you keep the executable!
- Mod: Do LayeredFs loading Parallel to improve speed.
- Reduces the boot times on games with a large number of mods applied.
- Fix NRE when calling GetSockName before Bind.
- Zengeon will no longer crash on boot with a socket error.
- infra: Reformat README.md & add new generic Mako workflow.
- No expected changes to emulator functionality.
- nuget: bump NetCoreServer from 7.0.0 to 8.0.7.
- Updates the NetCoreServer dependency. No expected changes in games.
- Allow skipping draws with broken pipeline variants on Vulkan.
- Fixes a crash on macOS in Fire Emblem: Three Houses, triggered by using the "Divine Pulse" ability.
- Ava UI: Mod Manager Fixes.
- Fixes a crash when selecting an invalid mod directory.
- Fixes a crash when trying to enumerate through a directory that Ryujinx doesn't have permissions to access.
- Fixes mods not deleting at the parent directory, leaving invisible orphan files that would prevent re-importing of the same mod.
- Better logging and user feedback.
- Fs: Log when Commit fails due to PathAlreadyInUse.
- Adds a logging message for situations where files that the emulator needs to access are being used by another process. Meant to help with troubleshooting.
- Ava UI: Mod Manager.
- Adds a mod manager to the Avalonia UI. To access it, right click on a game and click on "Manage Mods".
- Use driver name instead of vendor name in the status bar for Vulkan.
- For instance, the status bar will display "RADV" instead of just "AMD" on Linux when using the RADV driver.
- nuget: bump System.Drawing.Common from 8.0.0 to 8.0.1.
- Updates the System.Drawing.Common dependency. No expected changes in games.
- Ava UI: Fix Warn & Remove Custom Theming.
- Removes custom theme functionality from the Avalonia UI, as it was not being used, in part due to being too much work for the user.
- nuget: bump DynamicData from 7.14.2 to 8.3.27.
- Updates the DynamicData dependency. No expected changes in games.
- Horizon: Implement arp:r and arp:w services.
- Migrates arp:r and arp:w services to the Horizon project and updates them to reflect newest firmware changes. No expected changes in games.
- ssl: Work around missing remote hostname for authentication.
- Workaround for an issue where Ryujinx would crash when trying to interact with the GitHub API when using certain mods.
- nuget: bump Microsoft.IO.RecyclableMemoryStream from 2.3.2 to 3.0.0.
- Updates the Microsoft.IO.RecyclableMemoryStream dependency. No expected changes in games.
- nuget: bump Microsoft.CodeAnalysis.CSharp from 4.7.0 to 4.8.0.
- Updates the Microsoft.CodeAnalysis.CSharp dependency. No expected changes in games.
- Vulkan: Use staging buffer for temporary constants.
- May improve Vulkan performance slightly on some games.
- Deps: OpenTK Bump.
- Updates OpenTK dependencies. No expected changes in games.
- Implement SQSHL (immediate) CPU instruction.
- Fixes a crash when playing AV1 encoded videos on NXMP using dav1d decoder (homebrew).
- Vulkan: Enumerate Query Pool properly.
- Minor performance improvement on some games.
- Use unix timestamps on GetFileTimeStampRaw.
- The GetFileTimeStampRaw file system function now returns the correct timestamps.
- Fixes incorrect file date and time on NXMP and possibly other homebrew.
- Fix architecture preference for MacOS game shortcuts.
- Fixes an issue where shortcuts created on Apple Silicon Macs would start games using Rosetta emulation by default, in some cases lowering performance.
- Fix missing data for new copy dependency textures with mismatching size.
- Fixes a texture cache bug where part of the texture could be missing, if its data overlaps with an existing, smaller texture.
- Fixes text being corrupted in Shantae and the Pirate's Curse in a few cases, a regression introduced on build 1.1.605.
- Might also fix random texture corruption in other games.
- Add a separate device memory manager.
- Reading or writing video data to unmapped memory regions will no longer cause the emulator to crash.
- Should fix random crashes on PERSONA 5 Tactica while pre-rendered cutscenes are played, but that is unconfirmed.
- Input: Improve controller identification.
- Ensures that controllers are connected to a consistent player number when multiple controllers are connected and disconnected.
- This ensures that, for example, Player 1 will not change to Player 2 and vice-versa if one of the controllers is disconnected.
- Fix integer overflow on downsample surround to stereo.
- Fixes audio peaking and crackling with SDL2 backend on Shin Megami Tensei V, and likely other games that use surround 5.1 output, when the connected audio device only supports stereo or mono.
-
Implement a new JIT for Arm devices.
- Significantly improves code compilation speed and size on ARM devices.
- 32-bit and 64-bit games will boot faster and no longer need PPTC when using JIT on ARM devices.
- Close to native execution without need for platform specific hypervisor (e.g. Linux/Windows ARM devices).
*Note: Games that are not playable via hypervisor on macOS, such as Breath of the Wild/Animal Crossing, may now work better via JIT.
- Vulkan: Use templates for descriptor updates.
- Improves performance for the open-source AMD mesa driver (RADV) by up to 12%.
- Other drivers are not expected to see any noticable changes.
- Support portable mode using the macOS app bundle.
- Allows using the
portable
directory next to the macOS bundle.
- Allows using the
- Change shader cache init wait method.
- Code cleanup. No expected changes in games.
- Move most of signal handling to Ryujinx.Cpu project.
- Code cleanup, will help the upcoming ARM JIT. No expected changes in games.
- Ava UI: Update Ava & Friends.
- Updates all Avalonia-related dependencies. May fix some issues with the UI.
- Vulkan: Cache delegate for EndRenderPass.
- Small Vulkan optimization. No known visible changes in games.
- Fix vertex buffer size when switching between inline and state draw parameter.
- Fixes rendering in Citizens of Space.
- Revert Apple hypervisor force ordered memory change.
- Reverts the change in 1.1.1072 due to causing freezes in several games on macOS, including Pokémon Scarlet/Violet and Red Dead Redemption.
- Animal Crossing and Splatoon 2 players will likely prefer to stay on 1.1.1108 (Breath of the Wild was still not playable with this change).
- Reverts the change in 1.1.1072 due to causing freezes in several games on macOS, including Pokémon Scarlet/Violet and Red Dead Redemption.
- Fix Amiibo regression and some minor code improvements.
- Fixes a regression introduced in 1.1.1102 that caused Amiibo functionality to not work if the Amiibo.json file didn't already exist, affecting mostly new Ryujinx installs.
- Makes the Amiibo functionality more robust against certain exceptions.
- Related exceptions are now logged.
- Switch to Microsoft.IdentityModel.JsonWebTokens.
- Minor dependency change. No expected changes in games.
- Ava UI: RTL Language Support.
- On the Avalonia UI, adds support for languages that read right to left.
- Adds Hebrew as an option for UI language.
- Ava UI: Better Controller Applet.
- On the Avalonia UI, redesigns the controller applet to be clearer and easier to understand.
- Clicking "Open Settings Window" on the controller applet will now take you directly to input settings.
- Fix PPTC version string for firmware titles.
- Allows NSO Nintendo 64 games to work with firmware versions 13.0 and up.
- Add support for PermissionLocked attribute added on firmware 17.0.0.
- Allows NSO Nintendo 64 games to work with firmware version 17.0.
- Local Amiibo.json should be used if connection failed.
- Allows offline usage of Amiibo if the Amiibo.json file has been loaded before.
- Ava UI: Fix crash when clicking on a cheat's name.
- On the Avalonia GUI, fixes a crash caused by clicking on a cheat name in the cheats manager while the game is running.
- Fixes the game title disappearing from the cheats manager when accessing it while the game is running.
- [macOS] Correctly set filetypes in Info.plist.
- .nsp and .xci files will now be properly associated to open with Ryujinx on macOS, if the user chooses to do so.
- Ava UI: Fix temporary volume not being set after unmute.
- On the Avalonia UI, fixes an issue where muting and unmuting audio after changing the volume via the bottom status bar, would reset the volume to the original value, instead of returning it to what it was before muting.
- Implement support for multi-range buffers using Vulkan sparse mappings.
- Monster Hunter Rise: Sunbreak is now playable using Vulkan on Nvidia, AMD and Intel graphics cards. Apple Silicon GPUs and OpenGL still won't be able to run any updates newer than 3.9.1 for this game.
- ApplicationLibrary: Skip invalid symlinks.
- Fixes a FileNotFoundException caused by attempting to run a game on the games list that is no longer in the specified games directory.
- Improve indication of emulation being paused by the User.
- On emulation pause, a "Paused" indicator will be added to the application title bar, and the pause will also be logged on the console and log files.
- editorconfig: Set default encoding to UTF-8.
- Code cleanup. No expected changes to emulator functionality.
- HLE: Add OS-specific precise sleep methods to reduce spinwaiting.
- Reduces energy usage, especially on Linux and macOS. Should help battery-powered systems (such as the Steam Deck or laptops) not run out of battery as quickly while running games on Ryujinx.
- May help devices that are thermal throttling.
- Extend bindless elimination to see through shuffle.
- Fixes missing cubemap reflections in Detective Pikachu Returns.
- Enable copy dependency between RGBA8 and RGBA32 formats.
- Fixes cicadas not rendering when you catch them in Yo-kai Watch 1.
- Improves rendering in Wet Steps.
- May improve rendering on other games that use OpenGL on the Switch.
- Extend bindless elimination to see through Phis with the same results.
- Fixes some shadow issues in Super Mario RPG.
- misc: Default to Vulkan if available or running on macOS.
- The default graphics backend will be Vulkan if a supported graphics card is detected.
- Fix JitCache.Unmap called with the same address freeing memory in use.
- Fixes a crash that would occur after launching the 3D All-Stars version of Super Mario 64, stopping emulation and then launching another game.
- Fix macOS Path on .NET 8.
- Fixes an issue on macOS where, after 1.1.1084, Ryujinx would look for the data folder in the user's Documents directory, rather than in Application Support.
- Fix missing texture flush for draw then DMA copy sequence without render target change.
- Fixes duplicate item icons in Fashion Dreamer.
- chore: Update OpenTK to 4.8.1 :
- Updates the OpenTK dependency. No expected changes to emulator functionality.
- Fix flatpak not building after .NET 8.
- Migrate to .NET 8.
- Migrates Ryujinx to the new .NET version.
- Improves performance slightly on almost every game.
- Disable DMA GPU copy for block linear to linear copies.
- Fixes rendering issues in Fashion Dreamer.
- Fix TextureGroup.SignalModifying not being called.
- Fixes a regression from 1.1.1080 that broke textures in some games.
- Change minimum OS to macOS 12 in Info.plist.
- Ryujinx will no longer open on macOS 11 and older, as games could never run on those versions anyway.
- Do not set modified flag again if texture was not modified.
- Fixes a regression from 1.1.1066 that caused garbled textures on OpenGL in Digimon Story Cyber Sleuth: Complete Edition.
- On macOS, fixes lens flare flickering in The Legend of Zelda: Breath of the Wild.
- Revert "Add support for multi game XCIs".
- Reverts the change in 1.1.1076 due to causing issues with certain game dumps.
- Switch back to ubuntu-20.04.
- Fixed GitHub actions not building for Linux and macOS.
- Switch to LLVM 15.
- Attempted to fix GitHub actions not building for macOS.
- Add support for multi game XCIs.
- Create Desktop Shortcut fixes.
- Fixes the application shortcuts not working when used by other software (such as Nvidia Game Experience).
- Fixes the shortcuts not working on macOS.
- Ava UI: Add accelerator keys for Options and Help.
- Adds Alt+O for Options and Alt+H for Help shortcuts to the Avalonia UI.
- UI: Change default hide cursor mode to OnIdle.
- Mouse cursor will now be hidden on idle by default while a game is running. (Only affects new installs.)
- Force all exclusive memory accesses to be ordered on AppleHv.
- On macOS, fixes crashes and softlocks when running Animal Crossing: New Horizons, Splatoon 2 and The Legend of Zelda: Breath of the Wild with the hypervisor enabled.
- Overhaul of string formatting/parsing/sorting logic for TimeSpans, DateTimes, and file sizes.
- The console and logs will no longer show a warning for every game on the games list that has never been played.
- Better handle instruction aborts when hitting unmapped memory.
- Helps with debugging. No expected changes in games.
- Fix AddSessionObj NRE regression.
- Fixes a regression from 1.1.1067 that caused Baten Kaitos and Streets of Rage to crash after booting.
- Implement copy dependency for depth and color textures.
- Fixes shadow issues in Luigi's Mansion 3.
- [HLE] Remove ServerBase 1ms polling.
- Reduces the presence of ServerBase on CPU profiles, especially for games that aren't particularly busy.
- Greatly reduces power usage on Mario Kart 8 Deluxe and other games.
Older releases
- Skip some invalid texture flushes.
- Fixes a memory corruption crash in Neptunia GameMaker R:Evolution, allowing it to go in-game.
- Add ldn_mitm as a network client for LDN.
- Adds ldn_mitm as a multiplayer option. ldn_mitm allows for connecting to hacked Switch consoles via local network.
- Contributes to upstreaming the closed-source LDN build.
- macOS: Use user-friendly macOS version string.
- Changes the displayed macOS version on logs to be the commonly used denomination, instead of the Darwin kernel version number.
- Fix loading tickets from a Sha256PartitionFileSystem.
- Fixes a regression from 1.1.1061 that caused certain game dumps to hang on boot.
- Fix the AOC manager using incorrect paths.
- Fixes a regression from 1.1.1061 that caused game files with DLC bundled in them to crash on boot.
- Update to LibHac 0.19.0.
- Allows Cassette Beasts, DeepOne and Tiny Thor to go in-game.
- Fix NRE on shader gather operations with depth compare on macOS.
- Fixes a macOS crash in Luigi's Mansion 3.
- Revert "Ava UI: Input Menu Refactor"
- Removes changes made in 1.1.1058.
- Should resolve issues with button values not appearing/saving correctly.
- Ava UI: Input Menu Refactor.
- Cleans up the Avalonia input settings window and code.
- Allows using platform-specific keys (such as the Win key).
- Allows for button names to be localized.
- Add "Create Shortcut" To app context menu.
- You can now right click a game on the list and click on "Create Application Shortcut" to create a shortcut for that specific game on your desktop.
- Avalonia: Make slider scrollable with mouse wheel.
- Allows changing slider values with the mouse wheel on the Avalonia UI.
- Ava UI: Update to 11.0.5.
- Updates the Avalonia package. May fix some issues with the Avalonia UI.
- GPU: Add fallback when textureGatherOffsets is not supported.
- Required for Xenoblade Chronicles: Definitive Edition to render on the latest MoltenVK, when it gets updated in the future.
- May fix some minor issues on macOS.
- Enable copy between MS and non-MS textures with different height.
- Fixes a regression from 1.1.742 that caused Perky Little Things to not render.
- Horizon: Migrate usb and psc services.
- Migrates usb and psc services to the Horizon project and updates them to reflect newest firmware changes. No expected changes in games.
- Replace ReaderWriterLock with ReaderWriterLockSlim.
- Code cleanup. No expected changes in games.
- Fix games freezing after initializing LDN 1021 times.
- Fixes a regression from 1.1.1026 that caused Pokémon Sword/Shield to softlock after 20 minutes.
- Avalonia: Show aspect ratio popup options in status bar.
- Allows choosing the aspect ratio from the status bar on Avalonia.
- Symbols.cs Get function return value fix.
- Fixes a regression from 1.1.1043, though no games should have been affected.
- GPU: Add HLE macros for popular NVN macros.
- Implements HLE versions for popular NVN macros. Small performance improvements when using .NET 7 JIT.
- Mainly improves performance for a future NativeAOT build with .NET 8.
- HLE: Fix Mii CRC generation and minor issues.
- Fixes all generated Miis having invalid CRCs. This does not fix the
Mario Kart 8: Deluxe
title screen crash.
- Fixes all generated Miis having invalid CRCs. This does not fix the
- Fix SPIR-V call out arguments regression.
- Fixes a regression from 1.1.1041 that caused rendering issues in Master Detective Archives: Rain Code, some UE4 games and possibly others.
- nuget: bump Microsoft.CodeAnalysis.CSharp from 4.6.0 to 4.7.0.
- Updates the Microsoft.CodeAnalysis.CSharp dependency. No expected changes to emulator functionality.
- Strings should not be concatenated using '+' in a loop.
- Code cleanup. No expected changes in games.
- Fix SPIR-V function calls.
- Fixes a regression from the previous change that caused Nvidia GPUs to crash while compiling shaders.
- Use unique temporary variables for function call parameters on SPIR-V.
- Fixes games rendering as horizontal lines on AMD drivers 23.9.2 and newer. This affected Pokémon Legends Arceus, Pokémon Scarlet/Violet, The Legend of Zelda: Tears of the Kingdom, Xenoblade Chronicles: Definitive Edition and possibly others.
- Avalonia: Add macOS check for Color Space Passthrough.
- Hides the Color Space Passthrough setting on Windows and Linux, as the feature is only currently supported on macOS and MoltenVK.
- Implement textureSamples texture query shader instruction.
- Fixes water rendering in Cocoon.
- Decrement nvmap reference count on surface flinger prealloc.
- Fixes a GuestProgramBrokeExecution crash in Sifu.
- Signal friends completion event and stub CheckBlockedUserListAvailability.
- Allows Super Bomberman R 2 to go in-game.
- Fix audio renderer compressor effect.
- Fixes Ys X: Nordics having no audio.
- nuget: bump FluentAvaloniaUI from 2.0.1 to 2.0.4.
- Updates the FluentAvaloniaUI dependency to 2.0.4 and the Avalonia package version to 11.0.4. No expected changes to emulator functionality.
- Implement NGC service.
- Baten Kaitos Ⅰ & Ⅱ HD Remaster is now playable.
- Allows Star Ocean The Second Story R Demo to boot.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.31.0 to 7.0.0.
- Updates the System.IdentityModel.Tokens.Jwt dependency. No expected changes to emulator functionality.
- GPU: Don't create tracking handles for buffer textures.
- Improves performance in Mortal Kombat 1, R-TYPE FINAL 2, and certain UE4 games that reached 99% FIFO.
- Ava: Fix regressions by rewriting CheckLaunchState.
- Fixes a regression from 1.1.1027 that caused Avalonia to hang on launch when trying to bring up warnings for missing prod.keys or low limits for memory mappings.
- Reduce the amount of descriptor pool allocations on Vulkan.
- Fixes VK_ERROR_UNKNOWN on AMD GPUs in Puyo Puyo Tetris.
- Make Vulkan memory allocator actually thread safe.
- Attempts to fix a rare crash reported on macOS in The Legend of Zelda: Tears of the Kingdom.
- Add VTimer as alternative interrupt method on Apple Hypervisor.
- Fixes softlocks/infinite loading screens on macOS with hypervisor enabled in Bravely Default II, Life is Strange: True Colors, Persona 5 Scramble/Strikers and possibly other games.
- Ava UI: Refactor async usage.
- Significantly speeds up Avalonia's main window startup time.
- Add ldn:u implementation, INetworkClient interface and DisabledLdnClient.
- Initial LDN service implementation. (Does NOT contain all necessary changes to actually play LDN multiplayer.)
- Contributes to upstreaming the closed-source LDN build.
- Headless: Add support for Scaling Filters, Anti-aliasing and Exclusive Fullscreen.
- Adds Scaling Filters (Bilinear, Nearest, FSR), Anti-aliasing (None, FXAA, SMAA (all levels)) to the Headless SDL2 client.
- Adds support for an exclusive fullscreen mode on the Headless SDL2 client. (Currently not available on builds with a user interface.)
- GPU: Discard data when getting texture before full clear.
- Required for fixing a certain bug in Luigi's Mansion 3 in the future.
- Might reduce stuttering in some situations, though no noticeable changes were observed.
- nuget: bump Microsoft.NET.Test.Sdk from 17.6.3 to 17.7.2.
- Updates the Microsoft.NET.Test.Sdk dependency. No changes to emulator functionality.
- Vulkan: Fix barriers on macOS.
- Fixes a regression from 1.1.1014 that caused flickering graphics on macOS in Red Dead Redemption, The Legend of Zelda: Tears of the Kingdom and possibly other games.
- [INFRA] Addition of basic contributor guides and docs framework.
- Adds a contributing guide to the project on GitHub.
- Horizon: Migrate wlan and stubs latest services.
- No expected changes in games.
- Stub unsupported BSD socket options.
- Allows Crysis Remastered to go in-game.
- Fixes compiled bindings in cheat window.
- Fixes a regression from 1.1.1016 that caused cheats not to show in the cheat manager on Avalonia.
- Use compiled binding for localizations.
- Code cleanup. No expected changes in games.
- Remove more usages of reflection binding.
- Code cleanup. No expected changes in games.
- Replace ShaderOutputLayer with equivalent ShaderViewportIndexLayerEXT capability.
- Fixes Vulkan crashes introduced in 1.1.1002 on old AMD GPUs in Pokémon Scarlet/Violet.
- Fix some Vulkan validation errors (mostly related to barriers).
- Fixes several Vulkan validation errors to make debugging easier. No expected changes in games.
- Fix gl_Layer to geometry shader change not writing gl_Layer.
- Fixes a regression from 1.1.1002 that caused black rendering on older GPUs in Pokémon Scarlet/Violet (for example, Nvidia MX cards).
- lbl: Migrate service to Horizon.
- Code cleanup. No expected changes in games.
- Fix shader GlobalToStorage pass when base address comes from local or shared memory.
- Fixes a regression from 1.1.896 causing a few failures to find storage buffers in Splatoon 3 and probably other games, though no visible changes were found.
- Replacing 'Assembly.GetExecutingAssembly()' with 'Type.Assembly'.
- Code cleanup. No expected changes in games.
- Delete ResourceAccess.
- Code cleanup. No expected changes in games.
- Add macOS Headless release workflow.
- Adds macOS headless builds to master releases and pull requests.
- Fix ShaderTools GpuAcessor default values.
- Fixes a regression from 1.1.985 that caused ShaderTools to assert in debug mode and produce "incorrect" code on release due to the default graphics state being invalid. No changes in user builds.
- Fix layer size for 3D textures with NPOT depth.
- Fixes a regression from 1.1.863 which stopped grass/bushes/flowers/tree animations in Pokémon Scarlet/Violet.
- Vulkan: Device Local and higher invocation count for buffer conversions.
- Improves performance in Super Mario Sunshine on AMD and Nvidia GPUs.
- Fix numeric SWKB validation.
- Fixes Super Mario Odyssey Online's IP address selection.
- opus: Implement GetWorkBufferSizeExEx and GetWorkBufferSizeForMultiStreamExEx.
- Sea of Stars is now playable.
- Geometry shader emulation for macOS.
- Fixes several missing graphics on macOS in Crash Bandicoot N. Sane Trilogy, Luigi's Mansion 3, Mario Strikers: Battle League, Marvel Ultimate Alliance 3, Nier Automata: The End of YoRHa Edition, Splatoon 3, Super Mario Maker 2, The Liar Princess and the Blind Prince and possibly other games.
- Fixes a crash in Shin Megami Tensei III and allows it to go in-game on macOS.
- Contributes towards upstreaming the closed-source macOS changes.
- Add SmallChange properties to all sliders.
- Pressing arrow keys on Avalonia while a slider is selected will no longer make the slider jump to the highest or lowest values.
- Vulkan: Fix MoltenVK flickering.
- Fixes graphical bugs on macOS in Super Mario Odyssey and several other games.
- Fix invalid audio renderer buffer size when end offset < start offset.
- Fixes a crash in Disgaea 5 Complete at the end of the mission "Dreaming Mushroom" in Episode 4.
- Fix debug assert on services without pointer buffer.
- Fixes an assert introduced in 1.1.996 that only affected debug builds. No changes in user builds.
- Implement support for masked stencil clears on Vulkan.
- Resolves foliage and other smearing/ghosting effects in Red Dead Redemption when using Vulkan.
- mm: Migrate service in Horizon project.
- Code cleanup. No expected changes in games.
- Fix vote and shuffle shader instructions on AMD GPUs.
- Fixes black shadows/spots/flickering on AMD graphics cards in Luigi's Mansion 3, Marvel Ultimate Alliance 3, Master Detective Archives: Rain Code, Monster Hunter Rise, Nier Automata: The End of YoRHa Edition, Triangle Strategy and possibly other games.
- Prefer jagged arrays over multidimensional.
- Code cleanup. No expected changes in games.
- Declare and use gl_PerVertex block for VTG per-vertex built-ins.
- Code cleanup. No expected changes in games.
- Vulkan: Periodically free regions of the staging buffer.
- Fixes an edge case exposed by 1.1.988 where some games on Windows (for instance, Super Mario Odyssey) would suffer a large stutter periodically.
- GPU: Add Z16RUnormGUintBUintAUint format.
- Fixes graphical issues in Asterix & Obelix XXL: Romastered, Go Rally, Monster Blast, Pyramid Quest and Spencer.
- May fix similar issues in games using OpenGL on the Switch.
- UI: New Crowdin updates.
- Updates Avalonia GUI localizations with the latest changes from Crowdin.
- Implement scaled vertex format emulation.
- Required for geometry shader emulation on macOS. No expected changes in games.
- Vulkan: Buffer Mirrors for MacOS performance.
- Improves macOS performance greatly in literally every single game.
- Contributes towards upstreaming the closed-source macOS changes.
- Simplify resolution scale updates.
- Code cleanup. No expected changes in games.
- GPU: Track basic buffer copies that modify texture memory.
- Fixes broken icons in Dragon Quest Builders.
- May fix similar issues in games using OpenGL on the Switch.
- Delete ShaderConfig and organize shader resources/definitions better.
- Required for geometry shader emulation on macOS. No expected changes in games.
- "static readonly" constants should be "const" instead.
- Code cleanup. No expected changes in games.
- Ava UI: Remove animations on listbox items.
- Removes fade-in animations on list items, as they looked inconsistent with the rest of the Avalonia menus.
- Ava UI: Make some settings methods async.
- Vulkan device, audio backend, network interface and time-zone configuration converted to asynchronous Tasks.
- Reduces the start-up time of the settings window in Avalonia.
- Ava UI: Allow DPI switching on Windows.
- Fixes a Windows issue where Avalonia would look blurrier if system scaling was higher than 100% and multiple monitors with different DPI were used.
- Ava UI: Avalonia 11 & FluentAvalonia 2 Support.
- Fixes an issue where windowed game performance on Avalonia would be worse than on the GTK UI (fullscreen performance was equal between the two).
- Title bar color now matches Windows theme.
- Fixes text alignment issues on non-Windows platforms.
- Fixes janky textboxes, toggle buttons and checkboxes.
- [Hotfix] hid: Prevent out of bounds array access.
- Fixes a regression from 1.1.978 that caused ARCropolis mods to crash.
- Allow access to code memory for exefs mods.
- Fixes an issue where games would crash if mods utilizing JIT (most notably exlaunch) were used.
- Implement Color Space Passthrough option (Vulkan/Avalonia only).
- Added the option to pass the color space selector to the native display instead of the backend.
- Allows P3 and other wide-gamut displays to utilize their entire color space at the cost of intended sRGB color accuracy.
- Do not add more code after alpha test discard on fragment shader.
- On macOS, fixes a crash in Pikmin 3 when finishing the tutorial or on the results screen at the end of a day.
- GPU: Don't sync/bind index buffer when it's not in use.
- On macOS, improves performance in Pokémon Legends Arceus.
- GPU: Enable VK_EXT_4444_formats.
- Fixes a Vulkan validation error. No expected changes in games.
- nuget: bump DiscordRichPresence from 1.1.3.18 to 1.2.1.24.
- Updates the DiscordRichPresence dependency. No changes to emulator functionality.
- (Graphics.Shader): Handle EmitSuatom constant dests and EmitSuld zero dest reg.
- Jurassic World Evolution now goes in-game.
- CPU (A64): Add Fmaxp & Fminp Scalar Inst.s, Fast & Slow Paths; with Tests.
- Fixes a crash in Jurassic World Evolution, though it still does not go in-game.
- Fix incorrect fragment origin when YNegate is enabled.
- Fixes upside-down rendering in 20XX and Go Rally, and possibly other games using OpenGL on the Switch.
- Add workflow to automatically check code style issues for PRs.
- As a result of this and all previous dotnet reformatting changes, code formatting reviews on new Pull Requests on GitHub will now be automated, saving the developers a lot of time.
- Ava UI: Remove IsGameRunning from some dialog methods.
- Fixes a regression from 1.1.967 that caused the title updater, dlc manager, about, and check for updates to not spawn their content dialogs.
- Ava UI: Remove IsActive checks from dialog methods.
- Fixes content dialogs for the controller applet and software keyboard not spawning when the window was unfocused.
- HLE: Fix corrupted Mii structs.
- Fixes a regression from 1.1.962 that caused Mario Kart 8 Deluxe to crash after playing one race in VS mode and returning to the course selection.
- sdl2: Update to Ryujinx.SDL2-CS 2.28.1.
- May improve support for third-party Nintendo Switch Controllers.
- Fixes Xbox One Controllers from powering off when opening the settings menu.
- Fixes Xbox One Controllers from randomly not receiving inputs.
- [Hotfix] sockets: Resolve empty port requests to 0 again.
- Fixes a regression from 1.1.962 that caused DNS (2306-0520) errors and guest internet access not to work on several games. (This error will still appear if you try to connect to Nintendo Switch Online.)
- [CPU] Hotfix missing ToNearest rounding mode cases.
- Fixes a regression from 1.1.923 that caused some tests to fail. No known changes in games.
- [Ryujinx.HLE] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- Fix some Vulkan validation errors.
- No expected changes in games.
- Move ShaderBinaries into individual .spv files.
- No expected changes in games.
- Move support buffer update out of the backends.
- Moves support buffer update to the GPU project, removes duplicate code. No expected changes in games.
- MacOS: Allow barriers inside a render pass for non-Apple GPUs and don't treat as TBDR.
- No known changes in games.
- MacOS: Fix rendering on AMD GPUs.
- Fixes flickering/partial rendering on macOS systems with AMD graphics cards in Pokémon Sword/Shield and possibly other games.
- [Ryujinx.Ava] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- Revert "sdl: set SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS to 0".
- Reverted due to causing issues with official Nintendo controllers.
- sdl: set SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS to 0.
- ABXY buttons should have the correct default mapping on the controller profile regardless of brand.
- Headless: Add support for fullscreen option.
- Adds a "--fullscreen" argument to headless builds so they can be launched in fullscreen.
- Makes it easier to launch games in fullscreen mode from third party launchers (such as Steam Big Picture).
- Stop identifying shader textures with handle and cbuf, use binding instead.
- Improves flexibility of shader and texture-related code. No expected changes in games.
- [Ryujinx.Graphics.Gpu] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Hotfix] Fix naming issue in ControllerWindow.
- Fixes a regression from 1.1.948 that caused controller configuration to error out when saving.
- [Ryujinx.Audio] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Horizon] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.Vulkan] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- Prefer indexing instead of "Enumerable" methods on types implementing "IList".
- Code cleanup. No expected changes in games.
- [Ryujinx.Cpu] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Tests] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Ui.Common] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.GAL] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- macOS: Fix warning in some shell scripts.
- Code cleanup. No expected changes in games.
- [Ryujinx.Headless.SDL2] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Spv.Generator] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.Texture] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Common] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Memory] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Input] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.OpenGL] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- Cpu: Implement VCVT (between floating-point and fixed-point) instruction.
- Allows Death Road to Canada and Limbo to go in-game.
- nuget: bump Microsoft.NET.Test.Sdk from 17.6.2 to 17.6.3.
- Updates the Microsoft.NET.Test.Sdk dependency. No expected changes to emulator functionality.
- [Ryujinx.Graphics.Nvdec.Vp9] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.Shader] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Horizon.Kernel.Generators] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- dotnet-format: Apply new naming rule to all projects except Vp9.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.Video] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.Host1x] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Horizon.Generators] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [ARMeilleure] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Input.SDL2] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.SDL2.Common] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- misc: memory: Migrate from OutOfMemoryException to SystemException entirely.
- Fixes a regression with address space allocation while providing more information about the context of the exception. No known changes in games.
- [Ryujinx.Graphics.Device] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Audio.Backends.SDL2] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.Nvdec] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.ShaderTools] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.Nvdec.FFmpeg] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Tests.Memory] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Graphics.Vic] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Tests.Unicorn] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- Set COMPlus_DefaultStackSize to 2M in macOS.
- Increases the default stack size to 2MB on macOS.
- Fixes a SPIRV-Cross stack overflow that caused crashes on boot in Splatoon 3 and Mortal Kombat 11. Both titles are now playable.
- [Ryujinx.Horizon.Common] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Audio.Backends.SoundIo] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- [Ryujinx.Audio.Backends.OpenAL] Address dotnet-format issues.
- Code cleanup. No expected changes in games.
- Empty "case" clauses that fall through to the "default" should be omitted.
- Code cleanup. No expected changes in games.
- Mutable fields should not be "public static".
- Code cleanup. No expected changes in games.
- MemoryManagement: Change return types for Commit/Decommit to void.
- Code cleanup. No expected changes in games.
- "Where" should be used before "OrderBy".
- Code cleanup. No expected changes in games.
- "StartsWith" and "EndsWith" overloads that take a "char" should be used instead of the ones that take a "string".
- Code cleanup. No expected changes in games.
- "Find" method should be used instead of the "FirstOrDefault" extension.
- Code cleanup. No expected changes in games.
- "Exists" method should be used instead of the "Any" extension.
- Code cleanup. No expected changes in games.
- Fix regression introduced by 1.1.733 on Intel GPUs.
- Fixes a regression affecting Intel GPUs that caused erroneous lighting on character models in Pokémon Scarlet/Violet.
- GetHashCode should not reference mutable fields.
- Code cleanup. No expected changes in games.
- misc: Implement address space size workarounds.
- Required for ARM64 support when the kernel is configured to use between 63 and 39 bits for kernel space.
- Ensure shader local and shared memory sizes are not zero.
- Should fix the Mysterio boss crash in Marvel Ultimate Alliance 3: The Black Order. Currently untested.
- Implement Load/Store Local/Shared and Atomic shared using new instructions.
- Refactors some of the GPU code and makes it easier to implement more graphics backends in the future. No expected changes in games.
- Inheritance should not be redundant.
- Code cleanup. No expected changes in games.
- Blocks should be synchronized on read-only fields.
- Code cleanup. No expected changes in games.
- nuget: bump System.Management from 7.0.1 to 7.0.2.
- Updates the System.Management dependency. No expected changes to emulator functionality.
- test: Make tests runnable on system without 4KiB page size.
- Fixes running tests on Linux distros that use 16KiB pages, such as Asahi Linux.
- Fix Arm32 double to int/uint conversion on Arm64.
- Fixes bad audio in Prinny Presents NIS Classics Volume 3: La Pucelle: Ragnarok / Rhapsody: A Musical Adventure on ARM64 (Apple Silicon macOS) devices.
- Mod Loader: Stop loading mods from folders that don't exactly match titleId.
- Mods for a given game will no longer load from folders that have a slight, wrong variation of the game's title ID.
- UI: Correctly set 'shell/open/command; registry key for file associations.
- Fixes Ryujinx file association/disassociation with .nsp and .xci formats via Tools > Manage file types.
- Make LM skip instead of crashing for invalid messages.
- Fixes a crash when trying to start a match in Mortal Kombat 11 with no game update applied.
- hle: Stub IHidbusServer.GetBusHandle.
- Allows newer versions of NES Switch Online and Starlink: Battle for Atlas to boot.
- infra: Add PR triage action.
- Automatically assigns reviewers and some labels on pull requests on GitHub.
- Ava: Fix OpenGL on Linux again.
- Fixes an issue where running games with OpenGL would crash on boot on Linux when using the Avalonia UI.
- ava: Show/Hide UI Hotkey fix.
- Fixes the ability to Show/Hide the UI on Avalonia when using F4 or the assigned Hotkey.
- Implement fast path for AES crypto instructions on Arm64.
- Fixes stuttering on ARM64 (Apple Silicon macOS) devices in Animal Crossing: New Horizons when saving the game with hypervisor disabled.
- Implement transform feedback emulation for hardware without native support.
- Adds emulation for transform feedback for macOS devices and other hardware that do not support it in their drivers.
- Allows Pokémon Scarlet/Violet, Pokémon Legends Arceus, Metroid Prime Remastered, Donkey Kong Country: Tropical Freeze and more to boot/render on macOS.
- Contributes to upstreaming of the closed-source macOS build.
- Non-flags enums should not be used in bitwise operations.
- Code cleanup. No expected changes to emulator functionality.
- Using 'ThenBy' instead.
- Code cleanup. No expected changes to emulator functionality.
- macOS: Fix regression in macOS updater.
- Fixes an issue introduced with 1.1.869 that caused the macOS updater not to work.
- macOS: Configuration Directory Fix.
- Fixes an issue introduced with 1.1.630 that would cause an unhandled exception if the configuration directory was deleted.
- Prefer a 'TryGetValue' call over a Dictionary indexer access guarded by a 'ContainsKey.
- Code cleanup. No expected changes to emulator functionality.
- Software Keyboard Applet Fixes.
- Fixes an issue introduced in 1.1.862 that prevented numbers or spaces to be input in the keyboard applet in some games, like Pokémon Sword/Shield when naming Pokémon.
- Removing shift by 0.
- Code cleanup. No expected changes to emulator functionality.
- nuget: bump Microsoft.NET.Test.Sdk from 17.6.1 to 17.6.2.
- Updates the Microsoft.NET.Test.Sdk dependency. No expected changes to emulator functionality.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.30.1 to 6.31.0.
- Updates the System.IdentityModel.Tokens.Jwt dependency. No expected changes to emulator functionality.
- Vulkan: Use aspect flags for identity views for bindings.
- Fixes a regression from 1.1.805 that caused visual glitches or crashes on RADV (Mesa Vulkan drivers for AMD on Linux) in Kirby and the Forgotten Land, Mario + Rabbids Kingdom Battle, Metroid Prime Remastered, Pokémon Legends Arceus, Pokémon Scarlet/Violet, Pokémon Sword/Shield, The Legend of Zelda: Link's Awakening, Super Mario 3D World and possibly other games.
- Remove barrier on Intel if control flow is potentially divergent.
- The Legend of Zelda: Tears of the Kingdom now runs on Intel GPUs.
- Implement soft float64 conversion on shaders when host has no support.
- Contributes towards upstreaming the closed-source macOS changes.
- Fixes rendering in Rune Factory 4 Special and possibly other games on macOS.
- Fixes some ErrorDeviceLost crashes on Intel GPUs in The Legend of Zelda: Tears of the Kingdom. The game still won't run on Intel GPUs due to another issue.
- Updater: Ignore files introduced by the user in base directory.
- Updater will no longer delete user added files in the base directory when updating.
- Fix wrong unaligned SB state when fetching compute shaders.
- Fixes a regression caused by 1.1.861 that introduced glitches in some games on Intel GPUs.
- Fix 3D texture size when totalBlocksOfGobsInZ > 1.
- Fixes some 3D texture issues in UE4 games.
- Fixes crashes on newer versions of Dragon Ball Z: Kakarot, Dragon Quest X Offline and possibly other UE4 games.
- Avalonia: Adjust Grid Library alignment.
- Game rows that aren't filled will now align left instead of center on Avalonia's grid view.
- Dont Error on Invalid Enum Values.
- Prevents Ryujinx from deleting the Config.json file when switching between emulator versions with minor configuration differences.
- Replacing ZbcColorArray with Array4.
- Code cleanup. No expected changes in games.
- Texture: Fix layout conversion when gobs in z is used with depth = 1.
- Fixes gloom textures randomly breaking in The Legend of Zelda: Tears of the Kingdom, on both OpenGL and Vulkan.
- Fixes character rendering in Spiritfarer.
- Check KeyboardMode in GUI.
- Fixes some issues when entering a different character type than a game requests into the keyboard applet.
- Implement shader storage buffer operations using new Load/Store instructions.
- Allows for the implementation of transform feedback and geometry shader emulation on macOS.
- ava: Fix Input Touch.
- Fixes an Avalonia regression from 1.1.557 causing touch inputs to never be released.
- Resolves issues in some games where input would no longer be accepted after a single click.
- ava: Fix Open Applet menu enabled.
- The "open applet" menu is now inaccessible while games are running.
- Fixes possible error where this was attempted during gameplay.
- Armeilleure: Fix support for Windows on ARM64.
- Makes required changes to the CPU JIT to support Windows on ARM in future.
- Allow BGRA storage images on Vulkan.
- Fixes red and blue being swapped when FXAA or SMAA are enabled in Persona 4 Golden and any other games presenting BGRA textures.
- ava: Fix exit dialog while guest is running.
- Fixes an issue on the Avalonia UI where content dialogs would not pop up if the Ryujinx window happened to be out of focus.
- nuget: bump Microsoft.NET.Test.Sdk from 17.6.0 to 17.6.1.
- Updates the Microsoft.NET.Test.Sdk dependency. No expected changes to emulator functionality.
- UI: Fix empty homebrew icon.
- Avalonia will no longer crash when running a homebrew application that has no icon.
- Fix Avalonia Library header changes size when switching between List/Grid view.
- Adds an explicit height to the panel so that it won't grow/shrink when the "show names" checkbox is added/removed.
- [Logger] Add print with stacktrace method.
- Adds stacktraces to Ryujinx logs for easier debugging.
- nuget: bump DynamicData from 7.13.8 to 7.14.2.
- Updates the DynamicData dependency. No expected changes to emulator functionality.
- Only run one workflow for a PR at a time.
- Any given pull request will no longer build multiple times if commits are pushed rapidly.
- Vulkan: Include DepthMode in ProgramPipelineState.
- Fixes an issue that could cause a few additional stutters during shader compilation.
- GPU: Dispose Renderer after running deferred actions.
- Fixes a lot more cases of Ryujinx hanging after stopping emulation/closing.
- Avalonia UI: Fix letter "x" in Ryujinx logo being cut off in About dialog + make its pronunciation center-aligned.
- Fixes the aforementioned problems on the Avalonia "About" window.
- Skip draws with zero vertex count.
- Fixes a crash on macOS in Marvel Ultimate Alliance 3: The Black Order.
- Share ResourceManager between vertex A and B shaders.
- Fixes a regression from 1.1.811 that caused Borderlands 2 to crash before the title screen while generating a shader.
- Headless: MacOS Headless Fixes.
- Properly sign headless builds so they can use Hypervisor.
- Bundle MoltenVK in headless builds when building for macOS.
- Force Vulkan on macOS.
- Add Context Menu Option to Run Application.
- You can now launch games by right clicking them and selecting "Run Application" on the Avalonia UI.
- Linux: Automatically increase vm.max_map_count if it's too low.
- Works around a Linux issue where several games, including Shin Megami Tensei V and The Legend of Zelda: Tears of the Kingdom, would segfault after exceeding the max amount of memory mappings.
- nuget: bump Microsoft.NET.Test.Sdk from 17.5.0 to 17.6.0.
- Updates the Microsoft.NET.Test.Sdk dependency. No expected changes to emulator functionality.
- Make sure blend is disabled if render target has integer format.
- Contributes to upstreaming the closed-source changes in the macos1 build.
- Fixes crashes in Luigi's Mansion 3 and Xenoblade Chronicles games on macOS. Note that Xenoblade games won't work yet as they require transform feedback to run, which hasn't been upstreamed yet.
- Workaround for MoltenVK barrier issues.
- Contributes to upstreaming the closed-source changes in the macos1 build.
- Fixes vertex explosions in Xenoblade Chronicles games on macOS. Note that the games won't work yet as they require transform feedback to run, which hasn't been upstreamed yet.
- Fix incorrect vertex attribute format change.
- On macOS, fixes a regression from 1.1.821 which caused Gun Gun Pixies and other games to render incorrectly.
- Allow surround sound for SDL2 in more scenarios.
- Fixes an issue where the SDL2 audio backend would not output surround sound in certain setups.
- Linux: Use gamemode if it is available when using Ryujinx.sh.
- On Linux, when using the Ryujinx.sh script to start the emulator, checks for "gamemoderun" and uses it if it exists. May improve performance on supported systems.
- Add support for VK_EXT_depth_clip_control.
- Significantly reduces z-fighting on distant geometry in The Legend of Zelda: Tears of the Kingdom when using Vulkan.
- chore: Update Avalonia to 0.10.21 .
- Updates the Avalonia package from version 0.10.19 to 0.10.21. No expected changes to Avalonia UI functionality.
- About window: Add changelog link under ver. number.
- Adds a link to the changelog page on GitHub in the emulator's "About" tab.
- Update LastPlayed date on emulation end.
- "Last played" stat will now use the time when the game was last closed, instead of the time when it was last launched.
- Improve macOS updater.
- (Hopefully) fixes the remaining issues with the updater on macOS.
- Added Custom Path case when saving screenshots.
- Fixes an issue where emulator screenshots wouldn't save to the portable folder in portable mode if Ryujinx was launched using a cli argument for --root-data-dir.
- actions: revert timeout-minutes changes for PR workflow.
- Reverts the previous change for pull request builds.
- Use variables to configure job timeouts.
- Adds a config variable so developers can more easily control timeouts on GitHub workflows.
- Ava UI: Fixes for random hangs on exit.
- Fixes some of the hanging issues when exiting on Avalonia.
- Force reciprocal operation with value biased by constant to be precise on macOS.
- On macOS, fixes overbright clothing items in The Legend of Zelda: Tears of the Kingdom and Quaxly's hair in Pokémon Scarlet/Violet.
- Fix resolution scaling of image operation coordinates.
- Fixes a regression from 1.1.822 that caused flickering/graphical issues in Xenoblade Chronicles: Definitive Edition, Xenoblade 3 and possibly other games when using resolution scaling.
- Fix mod names.
- Allows Ryuko to read mod names in log files again.
- Generate scaling helper functions on IR.
- Separates the resolution scaling code from the shader backends so scaling behaves more similarly between OpenGL and Vulkan.
- Makes it easier to implement more graphics backends in the future.
- Truncate vertex attribute format if it exceeds stride on MoltenVK.
- Fixes vertex explosions in The Legend of Zelda: Tears of the Kingdom on macOS.
- Update release.yml.
- Updates github-script so it uses Node 16 instead of Node 12.
- Vulkan: Do not set storage flag for multisample textures if not supported.
- Fixes a crash in Dark Souls Remastered and other games that occurred on macOS when using a newer MoltenVK version.
- Implement p2rc, p2ri, p2rr and r2p.cc shaders.
- Implements the aforementioned missing shader instructions. These are used in The Legend of Zelda: Tears of the Kingdom, however it's not known what they affect, or if they affect anything at all.
- Revert "Bump MVK Version to 1.2.3".
- Reverts the previous change as it caused graphical regressions in some games while showing no noticeable benefit.
- Bump MVK Version to 1.2.3.
- Updates the MoltenVK dependency from version 1.2.0 to 1.2.3.
- Might fix graphical issues in some games on macOS.
- Ava UI: Input Menu Redesign.
- Redesigns and cleans up the input settings window on the Avalonia UI.
- Fix crash in SettingsViewModel when Vulkan isn't available.
- Fixes a crash when opening the settings window on devices (e.g. Windows ARM) where Vulkan is not available.
- ServerBase thread safety.
- Fixes a possible
RecyclableMemoryStreamManager
crash when closing Ryujinx. - Fixes some possible cases of Ryujinx hanging when stopping emulation.
- Fixes a possible
- Replace ShaderBindings with new ResourceLayout structure for Vulkan.
- Will allow for a cleaner implementation of transform feedback and geometry shader emulation on macOS in future.
- Replace constant buffer access on shader with new Load instruction.
- Fixes vertex explosions in Super Mario Sunshine and Super Mario Galaxy on AMD GPUs.
- Limit compute storage buffer size.
- Fixes a regression that caused DOOM Eternal to crash in-game. Note that the game still isn't playable due to other issues.
- SPIR-V: Only allow implicit LOD sampling on fragment.
- Fixes incorrect gloom hitboxes on AMD GPUs on Windows in the Depths in The Legend of Zelda: Tears of the Kingdom.
- Fix macOS Update Script.
- Fixes the remaining issues with the autoupdater on macOS.
- Eliminate redundant multiplications by gl_FragCoord.w on the shader.
- Fixes black dots and lines on character models in Demon Slayer -Kimetsu no Yaiba- The Hinokami Chronicles.
- nuget: bump DynamicData from 7.13.5 to 7.13.8.
- Updates the DynamicData dependency. No changes in games.
- Fix Vulkan blit-like operations swizzle.
- Fixes colors flashing in Omega Strikers.
- Avoid using garbage size for non-cb0 storage buffers
- Fixes the performance loss in the Depths in The Legend of Zelda: Tears of the Kingdom.
- ava: Fix crash when extracting sections from NCA with no data section.
- Fixes a crash on the Avalonia UI when extracting sections from NCAs that have no data section.
- Start GPU performance counter at 0 instead of host GPU value.
- Fixes The Legend of Zelda: Tears of the Kingdom locking at 20fps in situations where it shouldn't. Note that the game may still lock to 20fps if your hardware is unable to maintain 30fps; in these environments, a 30fps mod may still be needed.
- macos: Fix relaunch with updater when no arguments were provided to the emulator.
- Fixes macOS builds not restarting after an update if the emulator was started without arguments (for example on non-portable builds).
- [GUI] Fix always hide cursor mode not hiding the cursor until it was moved.
- Fixes a bug on the Avalonia UI where the hide cursor mode wasn't applied correctly if the cursor wasn't moved first.
- Vulkan: Device map buffers written more than flushed.
- Increases performance in The Legend of Zelda: Tears of the Kingdom on Nvidia GPUs* using Vulkan.
- Significantly reduces the large performance impact of resolution scaling for Nvidia GPUs using Vulkan in the above title.
- AMD does not suffer from the same limitation that was causing the large performance losses here and should be unaffected.
- Add timeout of 35 minutes to workflow jobs.
- GitHub workflows will now time out after 35 minutes instead of going on forever when they get stuck.
- audio: SDL2: Do not report 5.1 if the device doesn't support it.
- Fixes volume being too low on SDL2 if a game was converting 5.1 to stereo sound.
- Set OpenGL PixelPackBuffer to 0 when done.
- Fixes emulator screenshots being taken as black pictures when using OpenGL.
- Fixes camera photos and save previews being taken as black pictures in The Legend of Zelda: Breath of the Wild and The Legend of Zelda: Tears of the Kingdom when using OpenGL.
- May fix similar issues in other games when using OpenGL.
- macOS CI Adjustments.
- Allows macOS mainline builds to autoupdate.
- Removes the x86 macOS builds from Pull Request artifacts as they didn't actually work.
- Ava: Fix wrong MouseButton.
- Fixes a random crash on the Avalonia UI that could occur upon clicking the option to go fullscreen.
- Bump shader cache version.
- Corrects the missing cache bump in 1.1.785.
- Fix mentioned in that version is now correctly applied to existing shader caches.
- Vulkan: Partially workaround MoltenVK InvalidResource error.
- Adds a workaround for a MoltenVK issue where binding a storage buffer more than once with different stage flags causes resource usage to register incorrectly, which causes the command buffer to fail. No known changes in games.
- GPU: Remove swizzle undefined matching and rework depth aliasing.
- Fixes UI textures in The Legend of Zelda: Tears of the Kingdom.
- Fix the restart after an update.
- Fixes an issue where Ryujinx would not restart after updating, and would instead error out with "The application was unable to start correctly (0xc0000142)".
- Changed LastPlayed field from string to nullable DateTime.
- Fixes an issue where Ryujinx would crash after stopping emulation when the system and date format was too custom (for example, when using the Holocene calendar).
- amadeus: Allow 5.1 sink output.
- Allows Ryujinx to output 5.1 surround sound in games that support it.
- UI: Adjust input mapping view.
- Makes the Avalonia input settings window prettier.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.30.0 to 6.30.1.
- Updates the System.IdentityModel.Tokens.Jwt dependency. No changes in games.
- Enable explicit LOD for array textures with depth compare on SPIR-V.
- Fixes some visual glitches in The Legend of Zelda: Tears of the Kingdom when using the Vulkan backend.
- Fix incorrect ASTC endpoint color when using LuminanceDelta mode.
- Fixes white square artifacting on some textures in The Legend of Zelda: Tears of the Kingdom.
- amadeus: Fix wrong channel mapping check and an old typo.
- Fixes broken audio in The Legend of Zelda: Tears of the Kingdom.
- Stop SDL from inhibiting sleep (#4828).
- Fixes an issue where Ryujinx would prevent the computer from entering Sleep mode when no game would be running or when game execution was suspended.
- Fix the issue of unequal check for Amiibo file date due to the lack of sub-second units in the header.
- The Amiibo menu now opens faster.
- GPU: Fix shader cache assuming past shader data was mapped.
- Fixes a random crash in The Legend of Zelda: Tears of the Kingdom upon entering new areas.
- Update release workflow & Add jobs for macOS.
- Adds macOS builds to Pull Requests and to the GitHub releases channel.
Note that not all of the macOS-specific changes have been upstreamed yet; you may run into issues or reduced performance that don't exist in the macos1 preview build and vice-versa.
- Ensure background translation threads exited before disposing JIT.
- Fixes an uncommon issue where the emulator would crash on exit.
- Fix missing domain service object dispose.
- Fixes a regression from 1.1.774 that caused Animal Crossing: New Horizons to get stuck on the loading screen after pressing "Continue".
- fix(mvk): resumeLostDevice.
- Fixes MoltenVK crashes in Hyrule Warriors: Age of Calamity, Mario Strikers: Battle League and possibly other games.
- IPC - Refactor Bcat service to use new ipc - Revisit.
- Redo of 1.1.749, with fixes for the affected titles. No known changes in games.
- Replace DelegateHelper with pre-generated delegates.
- Should allow this to be compiled with NativeAOT in the future. No expected changes in games.
- Vulkan: Pass Vk instance to VulkanRenderer
- Allows future flexibility in driver selection where multiple could be installed.
- No expected changes in games.
- Vulkan: Avoid hardcoding features in CreateDevice.
- No expected changes in games.
- Vulkan: Simplify MultiFenceHolder and managing them.
- Slightly improves performance in Vulkan backend-bottlenecked games such as The Legend of Zelda: Breath of the Wild.
- Vulkan: Batch vertex buffer updates.
- Batches vertex buffer updates to reduce individual update calls and avoid rebinding those which have not changed.
- Slightly improves performance in The Legend of Zelda: Breath of the Wild.
- misc: Avoid copy of ApplicationControlProperty.
- Follow-up of 1.1.765, avoids more large copies. No expected changes in games.
- Ava: Fix SystemTimeOffset calculation.
- Fixes a bug in the Avalonia UI where the system time offset was being incorrectly calculated.
- Formats system settings AXAML. No expected changes in-games.
- time: Update for 15.0.0 changes and fixes long standing issues.
- Updates the time service HLE code to match RE of firmware 15.0.0.
- Fixes many time-related gameplay elements such as daily events and PokéJobs in Pokémon Sword/Shield.
- Switch ProcessResult to a class.
- Avoids large copies when passing or returning the ProcessResult.
- No expected changes in games.
- UI: Expose games build ID for cheat management.
- Shows the BID for any given game on the cheat manager so users can copy it without needing to look for it in log files or the internet.
- Add progress bar for re-packaging shaders.
- After rebuilding shaders on game boot, the emulator then proceeds to recompress the shader cache files; this change adds an extra loading bar for that process. Before, it would seem as if the emulator had hanged, though this was not the case.
- AM: Stub some service calls.
- No known changes in games.
- Shader: Use correct offset for storage constant buffer elimination.
- Fixes a regression from 1.1.755 which increased GPU usage in some games and caused performance drops when upscaling.
- Remove CPU region handle containers.
- Memory region handles are now accessed directly instead of through the CpuRegionHandle class.
- Improves performance in Super Mario Odyssey and other titles by up to 5%.
- Fix sections extraction.
- Fixes a crash when attempting to use the logo extraction feature.
- Correct tooltips for add,remove,removeall buttons.
- DLC Manager tooltips wrongly referred to updates instead of DLC.
- Fix typo in TextureBindingsManager.cs.
- "accomodate" -> "accommodate".
- Use ToLowerInvariant when detecting GPU vendor.
- Fixes GPU vendor detection on Turkish systems where "NVIDIA Corporation" for example would become "nvıdıa corporation" and fail the check.
- Allow any shader SSBO constant buffer slot and offset.
- May help homebrew that use APIs other than NVN, such as vita2hos or emulated Mario Kart DS.
- GPU: Allow granular buffer updates from the constant buffer updater.
- Improves performance in NieR Automata: The End of YoRHa Edition, Splatoon 2 and The Legend of Zelda: Breath of the Wild.
- ModLoader: Fix case sensitivy issues.
- Fixes the previous issue where cheat support broke by creating new instruction lists for every new cheat instead of clearing and share the same list.
- Fix unescaped string in the Linux launch script which fails when there are spaces in directory path.
- Revert "IPC - Refactor Bcat service to use new ipc".
- Reverts the change in 1.1.749 as it broke several games.
- UI: Move ApplicationContextMenu in a separated class.
- Fixes an issue where shader cache would be purged regardless of your answer to the "Are you sure?" prompt.
- IPC - Refactor Bcat service to use new ipc.
- Refactors Bcat service code. No known changes in games.
- Fix some invalid blits involving depth textures.
- Fixes a crash on MoltenVK in AI: The Somnium Files.
- Update SettingsWindow.cs.
- Fixes saving settings if directory path is directly pasted into the text field instead of using the file chooser.
- Revert "ModLoader: Fix case sensitivy issues".
- Reverts the change in 1.1.744 as it broke cheat support on Windows.
- Vulkan: Record modifications for barriers after changing the framebuffer.
- Fixes visual glitches at lower resolutions in Xenoblade Chronicles 2 on Nvidia RTX 3000 and 4000 series GPUs.
- Fixes godrays covering the screen on AMD and Nvidia GPUs in Bayonetta 3.
- ModLoader: Fix case sensitivy issues.
- Fixes an issue where the mod subdirectories (exefs, romfs) had to be lowercase to be recognized by Ryujinx.
- Add hide-cursor command line argument & always hide cursor option.
- Adds "--hide-cursor" as a new command line argument which overrides the current settings. Possible values are: "Always", "OnIdle", "Never". The default value for the hide-cursor option will still be "Never".
- Keep rendered textures without any pool references alive.
- Slightly improves performance in The Legend of Zelda: Breath of the Wild.
- Pre-emptively flush textures that are flushed often (to imported memory when available).
- Improves performance in The Legend of Zelda: Breath of the Wild, The Legend of Zelda: Skyward Sword HD, Xenoblade Chronicles: Definitive Edition, Xenoblade Chronicles 2 and possibly other titles.
- Fix errors handling texture remapping.
- Fixes the following regressions from 1.1.664:
- Bomb texture corruption while encountering Master Stalfos in The Legend of Zelda: Link's Awakening.
- UI textures in WVSC eBASEBALL: POWER PROS.
- White screen in Xenoblade Chronicles 3 and possibly the rainbow screen in Future Redeemed DLC.
- Signal interrupt event to improve back-end frame presentation.
- Improves frame-time consistency and presentation in all titles.
- Allow window to remember its size, position and state.
- Main window will start-up at its last opened position and state.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.29.0 to 6.30.0.
- Dependency update. No functionality changes.
- Fix paths and typos for macOS scripts.
- Resolves a bug in the macOS build script preventing compile.
- Move Ryujinx projects to a new src directory.
- Restructures the directory layout of the source code. No program changes.
- Fix geometry shader layer passthrough regression.
- Fixes a regression from 1.1.733 which caused Pokémon Scarlet/Violet to render as if it had a green filter over the screen. This only affected older GPUs that don't support writing gl_Layer on the vertex shader (1st gen Maxwell and older for Nvidia).
- Refactor attribute handling on the shader generator.
- Refactors shader translator code to better handle "attributes".
- Fixes compilation failures for tessellation shaders on MoltenVK, which would cause some games to render nothing except the UI on macOS.
- Fixes an issue on older GPUs that don't support setting gl_Layer on the vertex shader should be fixed. This allows Dragon Quest 3 and possibly other games to render on older GPUs.
- Add missing check for thread termination on ArbitrateLock.
- Fixes one instance of the emulator freezing when you stop emulation or close it (doesn't fix the issue entirely).
- Implement DMA texture copy component shuffle.
- Fixes inverted red and blue in 20XX and Dragon Quest Builders, possibly other games that use OpenGL on the Switch.
- Use vector transform feedback outputs with fragment shaders.
- Works around an AMD driver regression in Pokémon Legends Arceus causing invisible characters in Vulkan and distorted models in OpenGL.
- Set the console title for GTK.
- Fixes a regression that removed the program title from the GTK console.
- UI: Fix Amiibo issues & log errors and exceptions.
- Fixes an issue where scanning an Amiibo would be impossible if the user's internet connection was too slow to load the API before timing out.
- Reducing Memory Allocations 202303.
- Optimizes memory allocations on various emulator tasks. No known changes in games.
- Shader: Bias textureGather instructions on AMD/Intel.
- Apply small positive bias to textureGather to return correct texels.
- Fixes broken shadows on grass and character models in The Legend of Zelda: Breath of the Wild on AMD/Intel GPUs.
- Removed MotionInput Calibration.
- Fixes an issue where motion controls would re-center themselves every few seconds.
- Avoid LM service crashes by not reading more than the buffer size.
- Fixes a crash in Rune Factory 4 Special on newlywed mode when talking with your spouse.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.28.1 to 6.29.0.
- Updates the System.IdentityModel.Tokens.Jwt dependency. No changes in games.
- nuget: bump System.Management from 7.0.0 to 7.0.1.
- Updates the System.Management dependency. No changes in games.
- Support copy between multisample and non-multisample depth textures.
- Fixes some missing graphics in Fate/EXTELLA: The Umbral Star.
- Revert "chore: Update Silk.NET to 2.17.1".
- Reverts the change in 1.1.715 as it caused issues on self-built macOS builds.
- Vulkan: HashTableSlim lookup optimization.
- Small Vulkan optimization. No known changes in games.
- Change SMAA filter texture clear method.
- Fixes a crash on Intel GPUs and macOS when using SMAA.
- [GUI] Add network interface dropdown.
- Adds a setting to allow choosing the network interface used for LAN games (and LDN in the future). This feature is already present on LDN builds.
- Headless: Fix a crash in Ryujinx.Headless.SDL2 when loading an app.
- Fixes a crash caused by the recent application loader changes, should also log the PTC progress now.
- chore: Update Silk.NET to 2.17.1.
- Updates the Silk.NET dependency. No changes in games.
- Ensure the updater doesn't delete hidden or system files.
- Prevents the autoupdater from deleting system files in the Ryujinx folder, such as desktop.ini.
- nuget: bump DynamicData from 7.13.1 to 7.13.5.
- Updates the DynamicData dependency. No changes in games.
- Ava: Fix nca extraction window never closing & minor cleanup.
- Fixes an issue on Avalonia where the nca extraction window would not close after finishing.
- Ability to hide file types in Game List.
- You can now choose which file types will appear on the games list under Options > Show File Types.
- Added check for eventual symlink when displaying game files.
- Fixes an issue where Ryujinx wouldn't follow file size on symbolic links.
- Rename Hipc to Cmif where appropriate.
- Avalonia - Move swkbd message null check into constructor.
- Fixes an issue where the software keyboard in Avalonia did not populate any example text the game provides, such as default character names.
- HLE: Deal with empty title names properly.
- Fixes a regression from 1.1.689 that caused title names to not appear under certain system languages.
- Vulkan: add situational "Fast Flush" mode.
- Improves Vulkan performance in Bayonetta 3, Pokémon Scarlet/Violet (both only when using resolution scaling) and The Legend of Zelda: Breath of the Wild (in general).
- ARMeilleure: Move TPIDR_EL0 and TPIDRRO_EL0 to NativeContext.
- Improves performance slightly in Pokémon Scarlet/Violet and The Legend of Zelda: Breath of the Wild.
- OpenGL: Fix OBS/Overlays again by binding FB before present.
- Fixes a regression that caused OBS and other software to record inverted video on OpenGL.
- Avalonia - Force activate parent window before dialog is shown.
- Fixes an issue on the Avalonia UI where content dialogs (such as the controller applet) would not spawn if the Ryujinx window happened to be minimized or out of focus.
- [GUI] Fix a NRE in GTK when disposing GLRenderer.
- Fixes an issue where the emulator would sometimes crash if the Switch instance wasn't set up yet or an invalid file was loaded which didn't initialize it at all.
- ARMeilleure: Respect FZ/RM flags for all floating point operations.
- Fixes random crashes when Lynels are in the vicinity and inside the Yah Rin shrine when using the scales in The Legend of Zelda: Breath of the Wild.
- Implement remaining Arm64 HINT instructions as NOP.
- Fixes a crash on homebrew applications that use the borealis UI library.
- Eliminate boxing allocations caused by ISampledData structs.
- Code cleanup. No changes in games.
- Vulkan: Cleanup PhysicalDevice and Instance querying.
- Code cleanup. No changes in games.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.27.0 to 6.28.1
- Updates .NET System.IdentityModel.Tokens.Jwt dependency. No changes in games.
- Use index fragment shader output when dual source blend is enabled.
- Fixes a MoltenVK crash in Metroid Prime Remastered and possibly other games.
- Contributes towards upstreaming the currently closed-source macOS build.
- HLE: Set ProcessResult name from NACP.
- Fixes a regression from 1.1.689 that caused application names to not display properly on Discord statuses, Avalonia loading screens and logs.
- Fix missing string enum converters for the config.
- Fixes issues caused by the previous change, including configurations resetting and hotkey settings not updating on Avalonia.
- Source generated json serializers.
- Fixes some trimming warnings and condenses configuration code. *Note: this change may reset your configuration file.
- nuget: bump DynamicData from 7.12.11 to 7.13.1.
- Updates the DynamicData dependency. No changes in games.
- Vulkan: Separate debug utils logic from VulkanInitialization.
- Cleans up Vulkan debug code. No changes in games.
- nuget: bump Avalonia dependencies from 0.10.18 to 0.10.19.
- Updates the Avalonia dependencies. No changes in games.
- Refactoring of ApplicationLoader.
- Cleans up ApplicationLoader code and contributes towards multi-process support in the future (for example, EdiZon running alongside a game).
- Fix Linux hang on shutdown.
- Fixes an issue on Linux where the Ryujinx process would not disappear after closing it.
- Slight code refactoring.
- audout: Fix a possible crash with SDL2 when the SDL2 audio backend is dummy.
- Fixes a crash when launching Ryujinx with SDL_AUDIODRIVER=dummy.
- Vulkan: Fix access level of extension fields and make them read-only.
- Code cleanup. No changes to emulator functionality.
- Vulkan: Remove CreateCommandBufferPool from Vulkan Initialization.
- Code cleanup. No changes to emulator functionality.
- Vulkan: fix broken "VK_EXT_subgroup_size_control" support check.
- Fixes flickering graphics on AMD GPUs in Crisis Core -Final Fantasy VII- Reunion, Shin Megami Tensei V and possibly other games.
- Vulkan: Insert barriers before clears.
- Fixes black square artifacts ("puzzle pieces") on Vulkan, on Nvidia RTX 3000-4000 GPUs running driver version 522.25 or newer, in Mario Kart 8 Deluxe, Xenoblade Chronicles: Definitive Edition, Xenoblade 2 and Xenoblade 3.
- sdl2: Update to Ryujinx.SDL2-CS 2.26.3.
- Fixes infinite loop shutting down WGI controllers.
- Fixes centering the D-pad on some Xbox controllers.
- Allows some copycat DualShock 4 controllers and possibly other gamepads to work natively on Ryujinx.
- Batch inline index buffer update.
- Fixes low Nvidia Vulkan performance in Genkai Tokki Moero Crystal H, La-Mulana and possibly other games that use the OpenGL API on the Switch.
- Improves OpenGL performance in the same games for other GPU vendors.
- Update short cache textures if modified.
- Fixes a regression from 1.1.566 that broke rendering in Sonic Colors: Ultimate.
- Fix handle leak on IShopServiceAccessServerInterface.CreateServerInterface.
- Fixes a crash in SD Shin Kamen Rider Rumble.
- ARMeilleure: Check for XSAVE cpuid flag for AVX{2,512}.
- Fixes an issue introduced in 1.1.673 where the emulator would crash if running on an extremely old CPU.
- CI: add a version tag to correlate release versions with commits.
- Main releases on GitHub will now have tags that link to their respective commits.
- Revert "Use source generated json serializers in order to improve code trimming" #4576.
- Reverts the previous change. Fixes issues it caused such as configuration files not being parsed properly and games not booting.
- Use source generated json serializers in order to improve code trimming.
- ARMeilleure: Add initial support for AVX512 (EVEX encoding) (cont).
- Redo of 1.1.478 with added fixes for the black screen issues it caused.
- Vulkan: Migrate buffers between memory types to improve GPU performance.
- Greatly improves Nvidia Vulkan performance in Bayonetta 3, Blue Reflection: Second Light, Catherine Full Body, Ghost 'n Goblins Resurrection, Hyrule Warriors: Age of Calamity, Monster Hunter Rise, NieR Automata: The End of YoRHa Edition, Persona 5 Royal, Shin Megami Tensei V, Sonic Frontiers, Subnautica, Xenoblade Chronicles: Definitive Edition, Xenoblade 2, Xenoblade 3 and possibly other games.
- Remove MultiRange Min/MaxAddress and rename GetSlice to Slice.
- Code cleanup. No changes in games.
- Avoid copying more handles than we have space for.
- Fixes a regression from 1.1.668 that caused crashes in Fire Emblem Engage.
- OpenGL: Fix inverted conditional for counter flush from #4471.
- Fixes a regression from 1.1.662 that caused OpenGL to time out and softlock in Mario Kart 8 Deluxe and other games.
- Reducing memory allocations.
- Speeds up boot times by a few seconds on Metroid Prime Remastered and likely other games.
- Update syscall capabilites to include SVCs from FW 15.0.0.
- Allows the homebrew menu (using hbl.nsp) to boot again.
- nuget: bump UnicornEngine.Unicorn from 2.0.2-rc1-f7c841d to 2.0.2-rc1-fb78016.
- Updates the UnicornEngine.Unicorn dependency. No changes in games.
- GPU: Fast path for adding one texture view to a group.
- Greatly improves loading screens and fixes open zone getting stuck at ~3fps in Sonic Frontiers.
- May improve loading times in other games.
- Update range for remapped sparse textures instead of recreating them.
- Significantly reduces stuttering when going through doors in Metroid Prime Remastered.
- Greatly reduces FIFO% in NieR Automata: The End of YoRHa Edition when travelling between areas.
- May improve texture streaming stutters in other games.
- Ava UI: DownloadableContentManager Refactor.
- Refactors the Avalonia DLC manager and makes it consistent with the title update manager.
- GPU: Scale counter results before addition.
- Fixes resolution scaling in WarioWare: Get It Together and Wreckfest.
- Increase access permissions for AvaloniaList.
- Fixes a regression from 1.1.513 that caused the timezone list to not show.
- Misc: Support space in path on macOS distribution.
- Fixes build errors on macOS when spaces are present in the file path.
- [Flatpak] Beautify multiline strings again & Add full git commit hash.
- Code cleanup. No changes to emulator functionality.
- misc: Some dependencies cleanup.
- Removes unused dependencies.
- Misc performance tweaks.
- Minor code optimizations. No noticeable changes.
- [Flatpak] Add release github workflow.
- Flathub builds will now update again.
- CPU: Avoid argument value copies on the JIT.
- JIT optimizations and refactoring. May result in a minor performance improvement.
- nuget: bump Microsoft.CodeAnalysis.CSharp from 4.4.0 to 4.5.0.
- Updates the Microsoft.CodeAnalysis.CSharp dependency. No changes in games.
- Minor code formatting.
- nuget: bump UnicornEngine.Unicorn from 2.0.2-rc1-a913199 to 2.0.2-rc1-f7c841d.
- Updates the UnicornEngine.Unicorn dependency. No changes in games.
- Update LibHac to 0.18.0.
- Fixes a regression where the emulator wouldn't create a BCAT save if any other BCAT save already existed, throwing a "ResultFsTargetNotFound (2002-1002)" error when attempting to open the BCAT save directory.
- Loading personalized ticket title keys is now supported with the right console keys dumped.
- Sockets: Properly convert error codes on MacOS.
- Changes sockets error codes on macOS accordingly rather than using the same error codes as Windows and Linux.
- Defaults IsDhcpEnabled to true when interfaceProperties.DhcpServerAddresses is not available.
- Contributes towards upstreaming the currently closed-source macOS build.
- Add Support for Post Processing Effects.
- Adds FXAA and SMAA post processing options in graphics settings.
- Adds bilinear, nearest and FSR (1.0) upscaling options in graphics settings.
- Vulkan: Support list topology primitive restart.
- Fixes broken sand in The Legend of Zelda: Skyward Sword HD on Vulkan. (Will not affect MoltenVK as it does not support this extension.)
- Logging: Redirect StdErr into logging system.
- Allows for easier MoltenVK/Mesa debugging since StdErr will now show up in log files. No changes in games.
- Add missing DefineConstants definition in Ryujinx.Common.
- Fixes a project file bug that was preventing FlatPak and nixpkgs releases from building.
- macos: Add updater support.
- Adds an external updater script into macOS release packages.
- No changes for current macOS releases. Will become more useful once upstreaming is complete.
- Update OpenTK to 4.7.7
- Bumps OpenTK dependency to version 4.7.7. No changes expected in games.
- Move gl_Layer to vertex shader if geometry is not supported.
- Allows certain UE4 games such as Shin Megami Tensei V to render on macOS.
- Contributes to the upstreaming of the closed-source macOS branch.
- Perform bounds checking before list indexer to avoid frequent exceptions.
- Reduces ArgumentOutOfRangeExceptions and performance dips in VS console output and debug builds. No changes in games.
- Account for multisample when calculating render target size hint.
- Fixes a regression from 1.1.605 that caused graphical and/or upscaling issues in Bubble Bobble, Fate/EXTELLA: The Umbral Star, Pokémon Mystery Dungeon: Rescue Team DX and Rune Factory 5.
- Ava: Fix Title Update Manager not selecting the right update.
- Fixes an issue on Avalonia that would disable game updates after opening the update manager and not re-selecting an update.
- nuget: bump Microsoft.NET.Test.Sdk from 17.4.1 to 17.5.0.
- Updates the Microsoft.NET.Test.Sdk dependency. No changes in games.
- nuget: bump UnicornEngine.Unicorn from 2.0.2-rc1-9c9356d to 2.0.2-rc1-a913199.
- Updates the UnicornEngine.Unicorn dependency. No changes in games.
- Ava: Fix Linux updater crashing when tarStream is null.
- Fixes a regression that caused the Avalonia autoupdater to crash on Linux.
- Add copy dependency for some incompatible texture formats.
- Fixes vertical stripes in Mario + Rabbids Sparks of Hope.
- misc: changes base application directory behaviour.
- Allows changing base application directory behaviour at build time via FORCE_EXTERNAL_BASE_DIR. Required by nixpkgs and flathub.
- Contributes towards upstreaming the currently closed-source macOS build.
- Move Ryujinx Folder from ~/.config to ~/Library/Application Support on macOS.
- Moves the Ryujinx folder to make it more consistent with other apps on macOS. Data will automatically migrate from the old path to the new one.
- Use SIMD acceleration for audio upsampler.
- Doubles audio upsampling speed on x64 hardware.
- Memory: Faster Split for NonOverlappingRangeList.
- Reduces asset streaming stutters in Xenoblade Chronicles 2.
- Mark texture as modified and sync on I2M fast path.
- Fixes a regression from 1.1.233 that caused graphical issues in Tanuki Justice.
- Add support for advanced blend (part 1/2).
- Fixes transparency issues in Mario Party Superstars and ScreamPark selection screen in Luigi's Mansion 3 on Nvidia GPUs.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.26.1 to 6.27.0.
- Updates the System.IdentityModel.Tokens.Jwt dependency. No changes in games.
- Clear CPU side data on GPU buffer clears.
- Fixes the black screen in Mario + Rabbids Sparks of Hope.
- Validate dimensions before creating texture.
- Fixes a regression introduced in 1.1.615 that caused Super Smash Bros. Ultimate to crash when using ARCropolis mods.
- GUI: Small Updater refactor & Set correct permissions on Linux when extracting files.
- Fixes a Linux issue where the Ryujinx executable wouldn't work after using the autoupdater.
- Vulkan: Respect VK_KHR_portability_subset vertex stride alignment.
- No known changes in games.
- Vulkan: Clean up MemoryAllocator.
- Avoid querying GPU memory properties at allocation time. No known changes in games.
- Vulkan: Enforce Vulkan 1.2+ at instance API level and 1.1+ at device level.
- In some cases, ensures the emulator won't try to initialize Vulkan on an incompatible graphics device. No changes in games.
- Vulkan: Do not call vkCmdSetViewport when viewportCount is 0.
- Fixes some Vulkan validation errors. No known changes in games.
- Fix partial updates for textures.
- Fixes random texture corruption in Tony Hawk's Pro Skater 1 + 2 and possibly other games.
- Better filtering of invalid NPadIds when games request unknown supported players.
- Allows Kingdom Rush to boot.
- Allow partially mapped textures with unmapped start.
- Fixes broken lighting and fog in Metroid Prime Remastered.
- Fix SPIR-V when all inputs/outputs are indexed.
- Fixes a crash in Metroid Prime Remastered on Vulkan.
- ObjectiveC Helper Class.
- Avalonia code cleanup. No changes to the UI functionality itself.
- Log shader compile errors with Warning level.
- Shows OpenGL shader compilation errors as Warning log messages in the logging console. No changes in games.
- Replace unicorn bindings with Nuget package.
- Improves the code for tests. No changes in games.
- Vulkan: Flush command buffers for queries less aggressively.
- Improves Vulkan performance in Xenoblade Chronicles 2.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.26.0 to 6.26.1.
- Updates the System.IdentityModel.Tokens.Jwt dependency. No changes in games.
- Replace BitConverter.ToString(bytes).Replace("-", "") with Convert.ToHexString(bytes).
- Code cleanup. No changes in games.
- Fix some Vulkan validation errors.
- Code cleanup. No expected changes in games.
- Limit texture cache based on total texture size.
- Implements a better solution than 1.1.538 for its problem.
- Fixes a regression from the aforementioned change that spawned noise graphics on the title menu in River City Girls Zero.
- Handle mismatching texture size with copy dependencies.
- Fixes rendering in Disgaea 6: Defiance of Destiny, The Longest Five Minutes and void tRrLM().
- Fixes nuclear rainbow terrain when using extra stamina food or Master Cycle Zero in The Legend of Zelda: Breath of the Wild.
- Fixes nuclear rainbow tracks on AMD GCN/Polaris graphics cards (such as RX 400/500 series) in Mario Kart 8 Deluxe.
- Might fix random texture corruption in other games.
- Ava: Add ChangeVSyncMode() call to render loop.
- Makes render loop behave the same as in GTK.
- Fixes cases of screen tearing that would occur while running games on the Avalonia builds but wouldn't occur on GTK.
- Might fix screen tearing on macOS.
- Support safe blit on non-2D textures.
- Fixes more cases of AMD GPUs crashing on higher resolutions in Fire Emblem Engage.
- Accelerate NVDEC VIC surface read/write and colorspace conversion with Arm64 HW intrinsics.
- Contributes towards upstreaming the currently closed-source macOS build.
- Implement safe depth-stencil blit using stencil export extension.
- Fixes AMD graphics cards crashing on non-native resolutions in Fire Emblem Engage, Pokémon Scarlet/Violet, Pokémon Sword/Shield, The Legend of Zelda: Link's Awakening, Splatoon 3, Yu-Gi-Oh! Rush Duel: Dawn of the Battle Royale and possibly other games.
- Fixes low performance on AMD GPUs in Pokémon Scarlet/Violet, Pokémon Sword/Shield and possibly other games.
- Insert bitcast for assignment of fragment integer outputs on GLSL.
- Fixes a regression from 1.1.549 that broke rendering on OpenGL in several games, including Kirby and the Forgotten Land and Luigi's Mansion 3.
- Implement Account LoadOpenContext.
- Fixes some multi-game collections that would crash after launching one of the games, such as Prinny Presents NIS Classics Volume 1: Phantom Brave: The Hermuda Triangle Remastered / Soul Nomad & the World Eaters.
- nuget: bump SharpZipLib from 1.4.1 to 1.4.2.
- Updates the SharpZipLib package version. No changes to emulator functionality.
- Initial Apple Hypervisor based CPU emulation.
- Contributes towards upstreaming the currently closed-source macOS build.
- Allows games to run ARM code natively on Apple Silicon using the Apple Hypervisor framework. Greatly improves performance on Apple Silicon.
- Relax Vulkan requirements.
- Redo of 1.1.551 with fixes for the issues that appeared last time, such as broken lighting in several games.
- Vulkan: Reset queries on same command buffer.
- Contributes towards upstreaming the currently closed-source macOS build.
- Fixes some visual issues in A Hat in Time and Super Mario Odyssey on macOS.
- Remove use of GetFunctionPointerForDelegate to get JIT cache function pointer.
- Optimizes JIT code. No known changes in games.
- SPIR-V: Change BitfieldExtract and BitfieldInsert for SPIRV-Cross.
- Contributes towards upstreaming the currently closed-source macOS build.
- Add option to register file types.
- Under tools > manage file types, added options to associate or disassociate Nintendo Switch file extensions with Ryujinx, so that when an nsp or xci file is double-clicked, it opens that game on Ryujinx. Note that this feature doesn't currently work.
- Handle parsing of corrupt Config.json and prevent crash on launch.
- Fixes a crash on boot that could occur if the config.json file was corrupted or invalid.
- Arm64: Simplify TryEncodeBitMask and use for constants.
- Improves performance very slightly on ARM64 systems.
- AvaloniaKeyboardDriver: Swallow TextInput events to avoid bell on macOS.
- Prevents macOS from spamming the bell sound when playing with a keyboard.
- Allow setting texture data from 1x to fix some textures resetting randomly.
- Fixes resolution scaling in Cruis'n Blast, Deltarune, Fire Emblem Engage, Monopoly Madness, My Hero One's Justice 2, Pokémon Brilliant Diamond/Shining Pearl, Pokémon Mystery Dungeon: Rescue Team DX, Rune Factory 5, The Stanley Parable: Ultra Deluxe and possibly other games.
- Ava UI: Various Fixes.
- Fixes screenshot functionality not working on Avalonia since 1.1.532.
- Fixes an issue where game updates would not be removed properly from the JSON file if an update file was moved or renamed.
- Cleans up some more Ava code.
- Remove use of reflection on GAL multithreading.
- Code improvement, required for NativeAOT support. No known changes in games.
- nuget: bump Microsoft.CodeAnalysis.Analyzers from 3.3.3 to 3.3.4.
- Updates Microsoft.CodeAnalysis.Analyzers. No changes to emulator functionality.
- Use volatile read/writes for GAL threading.
- Contributes towards upstreaming the currently closed-source macOS build.
- Fixes some instances of random crashing on ARM64 macOS.
- Implement CSET and CSETP shader instructions.
- Fixes low detail texture bug in Persona 4 Golden.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.25.1 to 6.26.0.
- Updates System.IdentityModel.Tokens.Jwt. No changes to emulator functionality.
- Ava UI: Add Notifications and Cleanup.
- Adds in-app notifications to the Avalonia UI.
- Disables "open save directory" options when the given directory does not exist.
- Ava UI: Fix string.Format issues in Locale.
- Fixes an issue where some windows wouldn't open if UI language was not set to English on Avalonia.
- Catch Profile.json parse to prevent crash on launch.
- Fixes a crash on boot that could occur if the profiles.json file was corrupted or invalid.
- Ava UI: Add Control+Cmd+F HotKey for Mac OS.
- Adds additional hotkey to toggle full screen by pressing ^+⌘+F on macOS.
- Implement PCM24 output.
- Allows audio devices that do not support PCM16, PCM32 or float output to have PCM24 and PCM8 as possible output options.
- Ava UI: Fixes and cleanup Updater.
- Denying an emulator update after startup will no longer disable the option to check for updates on Avalonia.
- Vulkan: Destroy old swapchain on swapchain recreation.
- Fixes an issue where the image would freeze on AMD graphics cards when exiting fullscreen.
- Fixes a memory leak on macOS when resizing the window.
- Vulkan: Explicitly enable precise occlusion queries.
- Contributes towards upstreaming the currently closed-source macOS build.
- Fixes ink collision in Splatoon 2 and Splatoon 3 on MoltenVK.
- NativeSignalHandler: Fix write flag.
- Allows Mario Kart 8 Deluxe to use resolution scaling on ARM64 macOS.
- May improve Linux performance in some situations.
- Optimize string memory usage. Use Spans and StringBuilders where possible.
- Code cleanup. No changes in games.
- HOS: Load RomFs by pid.
- Allows separate processes to use separate romfs. No known changes in games.
- CPU: Fix NRE when disposing AddressSpace with 4KB pages support.
- Fixes an issue from 1.1.568 where the emulator crashed upon stopping emulation. (Note that it can still hang on closing certain games as that's a different issue.)
- ConfigurationState: Default to Vulkan on macOS.
- Sets graphics backend to Vulkan on macOS as the default setting.
- Implement support for page sizes > 4KB.
- Contributes towards upstreaming the currently closed-source macOS build.
- Games can now run without Rosetta on Apple Silicon using a master macOS build.
- Ava UI: Readd some infos to the GameList.
- Adds missing title ID and file extension information to the games list on the Avalonia UI.
- Add short duration texture cache.
- Improves performance in Fire Emblem: Three Houses and Hyrule Warriors: Age of Calamity, and possibly other Warriors/Musou games.
- Ava: Fix Linux Vulkan renderer regression.
- Fixes a regression from 1.1.563 that caused Vulkan to crash on Linux when using Avalonia.
- UI: Fixes GTK sorting regression of #4294.
- Fixes a regression from 1.1.562 that caused crashing on the GTK UI.
- Ava UI: Renderer refactoring.
- Refactor and cleanup everything related with Renderer hosting. Should not affect rendering behaviour.
- UI: Fix applications times.
- Makes play times easier to read.
- Specify image view usage flags on Vulkan.
- Fixes black screen on Nvidia in games using multisample sRGB textures, such as Pinball FX3 and Sphinx and the Cursed Mummy.
- Implement missing service calls in pm.
- Allows EdiZon NRO to boot.
- Ava UI: TitleUpdateWindow Refactor.
- Redesigns the Avalonia title update manager and cleans up its code.
- Audren: Implement polyphase upsampler.
- Improves accuracy of the upsampler implementation. No known changes in games.
- Ava UI: Fixes "Hide Cursor on Idle" for Windows.
- Fixes an issue with the cursor not being hidden properly on the Avalonia UI.
- Change GetPageSize to use Environment.SystemPageSize.
- Allows the emulator to detect the correct page size for the system it's running on.
- Required for Ryujinx to work on Asahi Linux in the future.
- Fix texture flush from CPU WaitSync regression on OpenGL.
- Fixes a regression from 1.1.554 that caused Super Mario Odyssey and other games to crash on OpenGL.
- Fix NRE when MemoryUnmappedHandler is called for a destroyed channel.
- Fixes random crashes in EVE ghost enemies. Possibly a regression from 1.1.361.
- Fix texture modified on CPU from GPU thread after being modified on GPU not being updated.
- Fixes missing textures in EVE ghost enemies, and possibly other games.
- Revert "Relax Vulkan requirements (#4228)".
- Reverts the previous change as it caused rendering issues on some games.
- Relax Vulkan requirements.
- The emulator will now request certain graphics features optionally, making it possible to run on more GPUs.
- Allows some games to work on the Raspberry Pi 4, albeit at non-playable speeds.
- Prepo: Fix SaveSystemReport and SaveSystemReportWithUser IPC definitions.
- Fixes a small regression from 1.1.519. No known changes in games.
- Fixes indexes args issue from #4188 (1.1.506).
- Vulkan: Add workarounds for MoltenVK.
- Adds MoltenVK configuration class and several workarounds for graphics features not supported by macOS.
- Contributes towards upstreaming the currently closed-source macOS build.
- Allows Mario Kart 8 Deluxe and many other titles to go in-game on Mac. On M1 systems, Rosetta is required for now.
- Ava UI: Reorder settings of Resolution Scaler.
- "Custom" is now at the bottom of the list.
- Ava UI: Various Fixes.
- Fixes an error from 1.1.540 that could occur when switching profiles and clicking "Manage saves".
- Save manager file sizes will be displayed in KB and GB when needed.
- Other minor adjustments.
- Ava UI: Settings Adjustments.
- Fixes log settings ordering.
- Other minor adjustments.
- PTC: Check process architecture.
- PPTC files will be disregarded if they are for different CPU architectures (for example, PTC compiled on an x86 PC cannot be transferred to an M1 Mac).
- ARM64: CPU feature detection.
- Required to determine what CPU features can be used by the emulator on ARM. No changes in games.
- lm: Handle Tail flag in LogPacket.
- Fixes logs related to the lm service. No changes in games.
- Ava UI: Move Ava logging to Logger.Debug.
- Avalonia UI logs (see 1.1.523) will now only show if debug logs are enabled, reducing console spam.
- Ava UI: Fixes PerformanceCheck condition.
- Fixes "Graphics shader dump path" warning prompt not disabling the setting when the user clicked "Yes" to disable it.
- Ava GUI: User Profile Manager + Other Fixes.
- Redesigns the user profiles manager on Avalonia and cleans up its code.
- Ava: Fixes Update count in heading.
- Number of available updates in the title update manager has been corrected.
- Remove textures from cache on unmap if not mapped and modified.
- Fixes abnormally high VRAM usage in Eiyuden Chronicle: Rising and Witch's Garden.
- ava: Generate Locale menu automatically.
- Generates Avalonia UI language selection menu automatically in order to make adding new languages easier.
- Implement JIT ARM64 backend.
- Adds ARM64 target support to the JIT, allowing it to work on ARM CPUs.
- Contributes towards upstreaming the currently closed-source macOS build.
- Paves the way for Ryujinx to run on other ARM devices in the future.
- Set LSApplicationCategoryType to games.
- On the next macOS release, automatically adds Ryujinx to the Launchpad games folder.
- Ava GUI: Fix Context Menu Locales.
- Corrects device save and BCAT save directory option text.
- misc: Enforce LF.
- Improves Ryujinx.sh script handling.
- ava: Cleanup AppHost.
- Cleans up AppHost file code.
- Ava: Add missing null check to ContentDialogHelper.ShowAsync().
- Fixes a regression that caused the Avalonia UI to crash on the Steam Deck.
- Add command line arguments to override docked mode.
- Adds "--docked-mode" and "--handheld-mode" command line arguments for both GUIs to override the state of EnableDockedMode.
- Fix linux packaging step for CI & Add headless build support to Ryujinx.sh.
- Fixes the previous version not building.
- Linux: Add Avalonia detection to Ryujinx.sh.
- Adds a small check to Ryujinx.sh to figure out if Ryujinx or Ryujinx.Ava needs to be executed.
- Replace tabs with spaces across the project.
- headless: Change window icon size to 48x48.
- [Headless] Add missing arguments & Fix typos.
- Adds "--macro-hle", "--hide-cursor", "--profile" and "--root-data-dir" to headless build arguments.
- Inverts several command line options i.e. EnableInternetAccess is now DisableInternetAccess for the non-default option.
- Adds a window icon.
- ava: Fixes regressions from refactoring.
- Fixes the following regressions on the Avalonia GUI:
- Right click context menu on games now works again.
- "Stop emulation" menu item now works again.
- The UI will now overlay properly over games again.
- Ava: Make Avalonia use our logging system.
- Avalonia logs will now be logged by Ryujinx.
- Ava GUI: Fix long selection bar broken in #4178 (1.1.520).
- HIPC: Fix reply possibly also receiving one request.
- Fixes an issue from 1.1.506. No known changes in games.
- Ava GUI: MainWindow Refactor.
- Refactors the main window code on the Avalonia UI. No notable changes to the window itself.
- Horizon: Impl Prepo, Fixes bugs, Clean things.
- Ports the prepo service to the new IPC handling from 1.1.506. Not known to affect any games.
- Moves sm service logs from Info logs to Debug logs.
- Cleans up sm and lm service code and general fixes.
- MainWindow: Vertically center SearchBox TextPresenter.
- Centers "Search..." text in the games list search box on the Avalonia GUI.
- ava: Fix regression caused by #4013.
- Fixes a regression from the previous change that caused the UI to break.
- Include a start.sh file with correct launch options.
- Adds a script to run Ryujinx on Linux and simplify its usage.
- Ava GUI: AboutWindow Refactor.
- Redesigns the "About" window on the Avalonia UI.
- [hipc] Fix 'Unexpected result code Success returned' in Reply().
- Fixes a crash when minimizing Ryujinx.Headless.SDL2.
- Ava GUI: SettingsWindow Refactor.
- Refactors the settings window code on the Avalonia UI. No actual changes to the window itself.
- chore: Update Ryujinx.SDL2-CS to 2.26.1.
- May improve compatibility with certain controllers.
- Misc: Remove duplicated entries and clean locale csproj.
- Small code cleanup. No changes in games.
- Readd Ryujinx.Ui.LocaleGenerator removed in 1.1.506.
- Fixes a regression from 1.1.506 where the project couldn't be built with Visual Studio.
- hle: Add safety measure around overflow in ScheduleFutureInvocation.
- Fixes a regression from 1.1.506 that caused crashing on Linux.
- Make PPTC state non-static.
- Allows PPTC to be used when the JIT service is loaded, improving loading in Super Mario 64, N64 NSO emulator games and any other games that use this service.
- IPC refactor part 3+4: New server HIPC message processor.
- Cleans up service implementations and opens the possibility for performance improvements in future changes to services. No known changes in games.
- Update Locale files.
- Updates Avalonia UI language files with the latest changes from Crowdin.
You can help with missing translations on https://crwd.in/ryujinx
- Avalonia - Add source generator for locale items.
- Makes it easier to manage localization code for the Avalonia GUI. No changes to actual UI functionality.
- misc: Use official names for NVDEC registers.
- No changes to emulator functionality.
- chore: Update tests dependencies.
- No changes to emulator functionality.
- Fix typo in left joycon SL binding.
- Left SL button was incorrectly labeled as Right SL button.
- Filter hidden game files from the Game List.
- On the next macOS release, removes "._" files from the games list.
- Use vector outputs for texture operations.
- May improve performance in certain games on integrated GPUs, and on dedicated GPUs when using resolution scaling.
- HLE: Add basic stubs to get Labo VR booting to title screen.
- Allows Nintendo Labo Toy-Con 04: VR Kit to boot.
- Vulkan: Don't flush commands when creating most sync.
- Improves Vulkan performance in Pokémon Scarlet/Violet, The Legend of Zelda: Breath of the Wild, Xenoblade Chronicles Definitive Edition and Xenoblade Chronicles 3.
- Xenoblade DE and 3 should now perform better on Vulkan than on OpenGL.
- Improves Vulkan performance in Pokémon Scarlet/Violet, The Legend of Zelda: Breath of the Wild, Xenoblade Chronicles Definitive Edition and Xenoblade Chronicles 3.
- Ava GUI: Restructure Ryujinx.Ava.
- Code cleanup of the Avalonia project. No changes to emulator functionality.
- Fix for not receiving any SDL events on Linux using Headless build.
- haydn: Add support for PCMFloat, PCM32 and PCM8 conversions.
- Improves SoundIO compatibility with audio devices that don't expose PCM16.
- Use new ArgumentNullException and ObjectDisposedException throw-helper API.
- Small .NET code optimizations. No known changes in games.
- GPU: Add fallback when 16-bit formats are not supported.
- On the next macOS release, fixes "ErrorFormatNotSupported" crashes in Ni no Kuni Wrath of the White Witch, Super Kirby Clash, Vroom in the Night Sky and Ys VIII: Lacrimosa of Dana. Only affects Intel Macs.
- Added Generic Math to BitUtils.
- Small .NET code optimizations. No known changes in games.
- bsd::RecvFrom: verify output buffer size before writing socket address.
- Verifies output buffer size (sockAddrOutSize) is non zero before writing socket address. No known changes in games.
- Some minor cleanups and optimizations.
- No known changes to emulator functionality.
- Implement a software ETC2 texture decoder.
- Implements a software decoder to decompress ETC2 textures on CPU when the format is not supported on the GPU.
- Fixes crashes in Infinity Tanks World War 2, Paradigm Paradox, Vegas Party and any other game that presented an ETC2 format error when using Vulkan with Nvidia and AMD GPUs.
- Fix CPU FCVTN instruction implementation (slow path).
- Fixes an issue on 2nd gen Intel CPUs and older that caused misaligned text on Two Point Campus and possibly other games.
- GPU: Force rebind when pool changes.
- Fixes graphical issues on character images in "The New Prince of Tennis: LET'S GO!!
Daily Lifefrom RisingBeat".
- Fixes graphical issues on character images in "The New Prince of Tennis: LET'S GO!!
- Make UI display correct content in Chinese.
- Fixes an issue where games wouldn't display the correct title or icon on the games list when system language was set to Chinese.
- hle: Handle GPU profiler and debugger device path correctly.
- Fixes log warnings in Doukoku Soshite (慟哭そして…).
- Fix DrawArrays vertex buffer size.
- Fixes vertex explosions in Sphinx and the Cursed Mummy on OpenGL.
- ARMeilleure: Hash _data pointer instead of value for Operand.
- May slightly improve how long it takes to boot any given game for the first time.
- Avalonia - Fix software keyboard row collision.
- Fixes an issue where placeholder text would not go away when typing on the software keyboard applet on Avalonia.
- Eliminate zero-extension moves in more cases on 32-bit games.
- Small code cleanup. May affect 32-bit games, though no changes are known.
- Revert "ARMeilleure: Add initial support for AVX512(EVEX encoding)".
- Reverted due to a regression causing black screens on CPUs that support AVX-512.
- ARMeilleure: Add initial support for AVX512(EVEX encoding).
- Implements enough of the EVEX encoding features to utilize AVX512 instructions for a 128-bit register use-case. Further changes are required for CPUs with AVX-512 support to have a notable performance improvement.
- hle: Fix wrong conversion in UserPresence.ToString.
- Fixes the bell sound when entering Time Trials in Mario Kart 8 Deluxe.
- nuget: bump Microsoft.NET.Test.Sdk from 17.4.0 to 17.4.1.
- Updates Microsoft.NET.Test.Sdk. No changes to emulator functionality.
- Implement another non-indexed draw method on GPU.
- Fixes rendering in Ikaruga.
- GPU: Fix layered attachment write.
- Fixes a regression introduced in 1.1.418 that broke the crowd rendering in Mario Strikers: Battle League.
- Avalonia: Fix invisible swkbd applet on Linux.
- The software keyboard applet is now visible again on Avalonia on Linux systems.
- Replace DllImport usage with LibraryImport.
- Code improvement, required for NativeAOT support. No known changes in games.
- Fix NRE when loading Vulkan shader cache with Vertex A shaders.
- Fixes a regression that caused Catherine to crash on boot when loading the shader cache.
- Remove Half Conversion.
- Code improvement. No known changes in games.
- Vulkan: enable VK_EXT_custom_border_color features.
- Only create a custom border color if the feature is supported and enabled.
- Fixes Vulkan crashes in Super Smash Bros. Ultimate, Xenoblade Chronicles 2 and other titles when using RADV on Linux.
- Bsd: Add support for dns_mitm.
- Allows for simple DNS redirection, which is used by some mods.
- misc: Update to Ryujinx.Graphics.Nvdec.Dependencies 5.0.1-build13.
- Fixes packaging issues on macOS related to an unsatisfied dependency on libX11.
- Use NuGet Central Package Management to manage package versions solution-wise.
- Makes version management easier for all dependencies. No changes to emulator functionality.
- misc: Some fixes to the updaters.
- Fixes command line being broken when updating on Avalonia.
- Makes the Avalonia updater fallback to the GTK Ryujinx executable if current name isn't found.
- Makes permission setter function more generic.
- Remove direct usage of chmod to use File.SetUnixFileMode.
- Fix "UI" abbreviation being miscapitalized.
- Use method overloads that support trimming. Mark some types to be trimming friendly.
- Code cleanup. No changes to emulator functionality.
- Bsd: Implement Select.
- Allows LAN mode to function in Saints Row: The Third and Saints Row IV.
- Just Die Already now goes in-game.
- audio: Rewrite SoundIo bindings.
- Code cleanup. No changes to emulator functionality.
- Fix Lambda Explicit Type Specification Warnings.
- Code cleanup. No changes to emulator functionality.
- Fix Redundant Qualifer Warnings.
- Code cleanup. No changes to emulator functionality.
- Fix HasUnalignedStorageBuffers value when buffers are always unaligned.
- Fixes a regression introduced in 1.1.419 that caused NieR Automata: The End of YoRHa Edition to crash when loading into gameplay.
- Add explicit dependency on System.Drawing.Common on Ryujinx.Ava to workaround trimming bugs.
- Fixes Avalonia builds crashing on startup since 1.1.456.
- misc: Remove dependency on System.Drawing.Common.
- Removes System.Drawing.Common, which was used only once for DPI scaling factor, and implements the same behaviour using gdiplus. Reduces emulator size slightly.
- Add concurrency restriction on release workflows.
- Allows merging multiple pull requests without needing to wait for them to build.
- misc: Update Ryujinx.Graphics.Nvdec.Dependencies to 5.0.1-build12
- Updates ffmpeg dependencies to support Linux x64 and macOS.
- ava: Restyle the Status Bar.
- Some tweaks to the Avalonia status bar where performed (fonts and margin adjustments)
- Game selector height was increased.
- nuget: bump CommandLineParser from 2.8.0 to 2.9.1.
- Updates CommandLineParser. No changes to emulator functionality.
- Fix shader FSWZADD instruction.
- Fixes text rendering in Just Dance 2023, The Stanley Parable: Ultra Deluxe, and possibly other games.
- Fixes transparency issues in Two Point Campus.
- Fixes layering issues in OlliOlli World.
- Shader: Implement PrimitiveID.
- Fixes overly dark lighting in Dark Souls Remastered.
- Fix inconsistent capitalization.
- Fixes a typo.
- acc: Stub CheckNetworkServiceAvailabilityAsync.
- Allows Hulu to boot.
- nuget: bump DynamicData from 7.12.8 to 7.12.11.
- Updates DynamicData. No changes to emulator functionality.
- nuget: bump NUnit from 3.12.0 to 3.13.3.
- Updates NUnit. No changes to emulator functionality.
- Add Ryujinx license to builds.
- Adds Ryujinx license information file to emulator builds.
- nuget: bump System.Drawing.Common from 6.0.0 to 7.0.0.
- Updates System.Drawing.Common. No changes to emulator functionality.
- hle: Do not add disabled AoC item to the list.
- Fixes an issue that caused Mario Kart 8 Deluxe to not work properly when older DLC was disabled but not removed on the DLC list.
- macOS: Fix Struct Layout Packing.
- Fix struct layout packing so more tests can run on macOS.
- gtk: Fixes warnings about obsolete components.
- Removes some warnings from the GTK UI.
- Shader: Add fallback for LDG from "ube" buffer ranges.
- Fixes grass particles in the wind in The Legend of Zelda: Breath of the Wild. May fix similar issues in other games.
- UI: Add Metal surface creation for MoltenVK.
- Required for basic graphics rendering on macOS.
- nuget: bump XamlNameReferenceGenerator from 1.4.2 to 1.5.1.
- Updates XamlNameReferenceGenerator. No changes to emulator functionality.
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.25.0 to 6.25.1.
- Updates System.IdentityModel.Tokens.Jwt. No changes to emulator functionality.
- ava: Cleanup Input classes.
- Code cleanup. No changes to emulator functionality.
- amadeus: Add missing compressor effect from REV11.
- No games are known to use this effect for now.
- Fix storage buffer access when match fails.
- Fixes a regression from 1.1.430 that caused scanlines on save file icons and occasional black textures in Xenoblade Chronicles Definitive Edition.
- Change default Vsync toggle hotkey to F1 instead of Tab.
- The default "toggle Vsync" (uncap/cap framerate) hotkey is now F1 and not Tab. Should help with users accidentally turning it off when alt-tabbing.
- nuget: bump Microsoft.CodeAnalysis.CSharp from 4.2.0 to 4.4.0.
- Updates Microsoft.CodeAnalysis.CSharp. No changes to emulator functionality.
- Fix Sorting Regression.
- Fixes a regression introduced in 1.1.428 that caused the games list to disappear.
- Fix shaders with global memory access from unknown locations.
- Fixes a regression from 1.1.427 that caused Mario Golf Super Rush (and possibly others) to crash.
- Update 'OpenGL Log Level' to 'Graphics Backend Log Level'.
- Renames the OpenGL logging option to properly reflect that it relates to both backends.
- Ava GUI: Several UI Fixes.
- Adjusts styles and UI elements to more closely match WinUI theming.
- Adjusts how playtime is represented to hours and minutes.
- Type boxes and other focusable elements now defocus when empty-space is selected.
- Restrict shader storage buffer search when match fails.
- May help avoid an error on macOS in the future. No known changes in games.
- Make structs readonly when applicable.
- Code cleanup. No changes to emulator functionality.
- misc: Fix obsolete warnings in Ryujinx.Graphics.Vulkan.
- No changes to emulator functionality.
- nuget: bump Microsoft.NET.Test.Sdk from 16.8.0 to 17.4.0.
- Updates Microsoft.NET.Test.Sdk. No changes to emulator functionality.
- Add InfoType.MesosphereCurrentProcess.
- Allows exefs replacement mods and homebrew to easily get their own process handle for use with certain SVCs, such as MapProcessMemory.
- ui: Disallow checking for updates while emulation active.
- Disables "check for updates" option while a game is running.
- Allow SNorm buffer texture formats on Vulkan.
- Used by most UE4 games, though not known to affect any of them at the moment.
- Implement non-MS to MS copies with draws.
- Required by Apple Silicon GPUs. No known changes in games.
- GPU: Use lazy checks for specialization state.
- Improves performance slightly in Super Mario Odyssey and possibly other games.
- GPU: Swap bindings array instead of copying.
- Improves performance slightly in Super Mario Odyssey and possibly other games.
- Use source generated regular expressions.
- Code cleanup. No changes in games.
- Support logging available memory on macOS.
- Available RAM will be shown on macOS logs on the next macOS update.
- Fix using in Ava.
- Fixes an oversight in the Avalonia code that caused 1.1.414 not to compile.
- SDL2Driver: Invoke dispatcher on main thread.
- Required for macOS. No expected changes in games.
- Avalonia - Save Manager.
- Adds a save manager to the Avalonia UI under Options > Manage User Profiles.
- Allows for easy file deletion and quick save folder opening.
- Adds an option to restore lost user profiles using existing saves.
- amadeus: Fix wrong SendCommands logic.
- May help games with audio desyncs.
- Ava GUI: Add back locales removed in #3955.
- Adds back "SettingsButtonSave" & "SettingsButtonClose" removed in 1.1.410.
- Fixes "Close" showing as "SettingsButtonClose" on the Avalonia UI.
- Ava GUI: Make Dialogue More Intuitive.
- Renames "Save" to "OK" and "Close" to "Cancel".
- Layout of buttons adjusted to establish a clearer visual hierarchy (adapts to match OS).
- "OK" is now bound to Enter and the button is highlighted.
- "Cancel" is now bound to Escape.
- Revert "nuget: bump SixLabors.ImageSharp from 1.0.4 to 2.1.3 (#3976)".
- Reverts the previous change.
- nuget: bump SixLabors.ImageSharp from 1.0.4 to 2.1.3.
- Updates SixLabors.ImageSharp dependencies. No changes to emulator functionality.
- chore: Update Silk.NET to 2.16.0.
- Updates Silk.NET dependencies and Vulkan extensions. No changes to emulator functionality.
- Better SDL2 Audio Init Error Logging.
- Adds an error to the log when SDL2 fails to initialize.
- GPU: Track buffer migrations and flush source on incomplete copy.
- Fixes most cases of vertex explosions in Pokémon Scarlet/Violet.
- Fixes device loss crashes and possibly vertex explosions in Xenoblade Chronicles 3 on Vulkan, ONLY if shader caches from before this change are purged beforehand.
- infra: Add distribution files for macOS.
- Upstreams macOS packing and distribution files.
- Avalonia: Clean up leftover RenderTimer & Fix minimum and initial window size.
- Black bars will no longer show on the default window size on Avalonia.
- Framerate on the Avalonia UI is no longer limited (does not affect games).
- nuget: bump DiscordRichPresence from 1.0.175 to 1.1.3.18.
- Updates DiscordRichPresence dependencies. No changes to emulator functionality.
- Remove shader dependency on SPV_KHR_shader_ballot and SPV_KHR_subgroup_vote extensions.
- Required for MoltenVK. No changes in games.
- Ensure that vertex attribute buffer index is valid on GPU.
- Fixes some crashes on Vulkan on Intel and AMD graphics cards. It's currently unknown which games are affected.
- nuget: bump System.Management from 6.0.0 to 7.0.0.
- Updates System.Management to 7.0.0. No changes to emulator functionality.
- ConcurrentBitmap: Use Interlocked Or/And.
- Code cleanup. No changes to emulator functionality.
- chore: Update OpenTK to 4.7.5.
- Updates OpenTK dependencies. No changes to emulator functionality.
- Avalonia: Update FluientAvalonia
- Make dialogs work on Linux with Avalonia making it usable on it again.
- GPU: Always draw polygon topology as triangle fan.
- Fixes the stats chart in Pokémon Legends Arceus and Pokémon Scarlet/Violet on Vulkan and on certain OpenGL drivers that don't support GL_POLYGON in compatibility mode.
- amadeus: Fixes and initial 15.0.0 support.
- Fixes crashes in Ninja Gaiden Sigma 2, Ninja Gaiden 3: Razor's Edge and Paper Mario: The Origami King.
- Fixes broken audio in Crash Team Racing Nitro-Fueled.
- Fix Delay effect wrong variable usage for matrix transform on Stereo, Quadraphonic and Surround codepaths.
- Update Delay effect Surround matrix to support REV11 optimization.
- Change voice drop logic to use 32 bits integer to be closer to real firmware. Might fix voice drop issues on some games.
- Add voice drop parameter support that was introduced in 15.0.0.
- Accurately stub ExecuteAudioRendererRendering.
- sfdnsres: Fix deserializer of AddrInfoSerialized when addresses are empty.
- Allows the Homebrew App Store to boot.
- bsd: Fix eventfd broken logic.
- Required for Pokémon Legends Arceus 1.1.1 to boot with Guest Internet Access enabled, though more changes are necessary for this.
- HLE: fix small issue in IPsmSession.
- Fixes small logic error in the Psm service. No known changes in games.
- Avalonia: Fix OpenGL crashing on Linux.
- Fixes a regression from 1.1.389 that caused Avalonia to crash on Linux when using OpenGL.
- Avalonia: Fix invisible Vulkan window on Linux.
- Fixes the Avalonia rendering window being invisible when using Vulkan on Linux.
- ava: Refactor Title Update Manager window.
- The Title Update Manager on Avalonia is now redone to be consistent with the changes in 1.1.385.
- Fixes an issue where trying to scroll with a mouse wheel would expand the window instead, this time for real.
- Fix CB0 alignment with addresses used for 8/16-bit LDG/STG.
- Fixes a regression introduced in 1.1.355 that caused Xenoblade 3 videos to be more pixelated than normal.
- chore: Update Avalonia related dependencies.
- Updates Avalonia dependencies. No changes to emulator functionality.
- ava: Rework DLC Manager, add various fixes and cleanup.
- The DLC Manager on Avalonia is completely redone to enhance the user experience.
- Fixes an issue where trying to scroll with a mouse wheel on a list with multiple DLCs would expand the window instead.
- The game list will now wait 1 second after a keyword is typed to search for a game. Previously it would refresh on each keystroke, taking too long to load on big lists.
- Updates are now selected automatically when added to the Title Update Manager.
- After deleting a game directory in settings, the next one will be automatically selected.
- nuget: bump SharpZipLib from 1.3.3 to 1.4.1.
- Updates the SharpZipLib package version. No changes to emulator functionality.
- chore: Update Ryujinx.SDL2-CS to 2.24.2.
- May improve controller compatibility or sound issues in some games.
- Controller bindings may need to be reconfigured after this update.
- May improve controller compatibility or sound issues in some games.
- GPU: Don't trigger uploads for redundant buffer updates.
- Improves performance in Xenoblade Chronicles: Definitive Edition and The Legend of Zelda: Link's Awakening on Vulkan.
- Reduce usage of Marshal.PtrToStructure and Marshal.StructureToPtr.
- Code cleanup. No expected changes to emulator functionality.
- ui: Fixes disposing on GTK/Avalonia and Firmware Messages on Avalonia.
- Fixes an issue where opening a game without installed firmware and then selecting the "OK" or "Open the Setup Guide" options would crash Ryujinx.
- Ryujinx.Ava: Add missing redefinition of app name.
- Fixes an issue where Ryujinx could sometimes report as "Avalonia Application".
- Fix NRE on Avalonia for error applets with unknown error message.
- Fixes an issue where unknown errors would crash Avalonia.
- GAL: Send all buffer assignments at once rather than individually.
- Improves performance significantly in Pokémon Scarlet/Violet, Super Mario Odyssey, Super Smash Bros. Ultimate and any other games that tend to bind many constant buffers at once.
- GPU: Access non-prefetch command buffers directly.
- Improves performance slightly in Pokémon Scarlet/Violet and Super Mario Odyssey.
- GPU: Relax locking on Buffer Cache.
- Improves performance in Super Mario Odyssey and possibly other games with high FIFO.
- nuget: bump Avalonia from 0.10.15 to 0.10.18.
- Updates the Avalonia package version. No changes to emulator functionality.
- ava: Fix JsonSerializer warnings.
- Fixes some warnings in the Avalonia project. No changes to emulator functionality.
- Update to LibHac 0.17.0.
- Fixes an issue where Ryujinx would delete the Save folder in the sdcard directory after booting.
- Improves filesystem emulation stability.
- Stub IFriendService: 1 (Cancel).
- Allows SnowRunner to proceed past the title screen.
- Avalonia - Fix controller insertion crash.
- Fixes a crash that occurred when connecting a new controller while the settings window was open on Avalonia.
- Do not update shader state for DrawTextures.
- Fixes a crash in A Hat in Time that occurred in certain places.
- Use upstream unicorn for Ryujinx.Tests.Unicorn.
- CPU tests can now be executed on Linux. No changes in games.
- Reword the description of the 6GB expand DRAM hack to be less tantalizing.
- "Expand DRAM Size to 6GiB" is now named "Use alternative memory layout (Developers)".
- Unsubscribe MemoryUnmappedHandler even when GPU channel is destroyed.
- Fixes a regression introduced in 1.1.361 that caused World of Light to crash in Super Smash Bros. Ultimate.
- Fix shader cache on Vulkan when geometry shaders are inserted.
- Fixes a crash when loading the shader cache on Vulkan on GPUs affected by 1.1.364 in Pokémon Scarlet/Violet.
- Move gl_Layer from vertex to geometry if GPU does not support it on vertex.
- Fixes a crash during boot on Vulkan and a black screen on OpenGL when using Maxwell and older Nvidia GPUs in Pokémon Scarlet/Violet.
- Vulkan: Clear dummy texture to (0,0,0,0) on creation.
- Fixes an issue with AMD GPUs on Linux that caused colored filters to appear over the screen in Pokémon Scarlet/Violet when using Vulkan.
- GPU: Fix thread safety of ReregisterRanges.
- Fixes some crashes in Pokémon Scarlet/Violet.
- May fix similar issues in Pokémon Sword/Shield and possibly other games.
- Prune ForceDirty and CheckModified caches on unmap.
- Fixes a regression that would degrade performance over time in Super Mario Odyssey.
- Vulkan: Don't create preload command buffer outside a render pass.
- Improves performance in Pokémon Scarlet/Violet.
- am: Stub GetSaveDataSizeMax.
- Allows Football Manager 2023 Touch to boot.
- Use ReadOnlySpan compiler optimization in more places.
- Small code optimization. No known changes in games.
- Allow _volatile to be set from MultiRegionHandle checks again.
- Fixes performance regressions from 1.1.335 that affected Pokémon Sword/Shield, Yu-Gi-Oh! Rush Duel: Dawn of the Battle Royale and possibly other games.
- SPIR-V: Fix unscaling helper not being able to find Array textures.
- Fixes broken ground textures in Pokémon Scarlet/Violet when using resolution scaling.
- Fixes upscaling on exploding bubbles in Bubble Bobble and spawn spheres and other effects in Rune Factory 5.
- GPU: Eliminate CB0 accesses when storage buffer accesses are resolved.
- Improves performance significantly in Xenoblade Chronicles Definitive Edition on Vulkan.
- Improves performance in Xenoblade 2 and Xenoblade 3 on Vulkan, and in Definitive Edition on OpenGL.
- Improves performance in Pokémon Scarlet/Violet and possibly other games.
- ci: Clean up Actions leftovers.
- Fixes Avalonia build versions for pull requests.
- Ensures that the "--self-contained" doesn't warn at build.
- Capitalization to be consistent.
- Small grammar changes.
- Allow to start Ryujinx in Wayland environment.
- Allows Ryujinx to start in Wayland environment, ignoring code to retrieve monitor dimensions.
- Fix Fedora support.
- Fixes Fedora Linux not having a symlink for libX11.so by attempting to import it by version.
- Prevent raw Unicode control codes from showing on software keyboard applet.
- Fixes some formatting errors on the software keyboard applet.
- Update units of memory from decimal to binary prefixes.
- Changes "GB" to "GiB" and "MB" to "MiB" on the UI and the rest of the code.
- Use new C# 11 UTF-8 string literals.
- Small code optimization. No known changes in games.
- Make use of Random.Shared.
- Small code optimization. No known changes in games.
- Use new LINQ Order() methods.
- Small code optimization. No known changes in games.
- Implement HLE macro for DrawElementsIndirect.
- Adds an "Enable Macro HLE" option to graphics settings, enabled by default.
- When enabled, improves performance on Monster Hunter Rise, NieR Automata: The End of YoRHa Edition, Nintendo Switch Sports (not yet playable) and possibly other games.
- GTK: It's REE-YOU-JINX.
- Corrects the pronunciation guide in the GTK UI's "about" page.
- UI: Allow overriding graphics backend + Move command line parser into a new class.
- Adds a new command line option "-g/--graphics-backend" which allows to override the previously configured graphics backend value on launch.
- Command line arguments are now kept when Avalonia restarts (except for the overridden graphics backend).
- Reduces the amount of duplicate code between GTK and Avalonia.
- Use vector transform feedback outputs if possible.
- Fixes grass rendering in Xenoblade Chronicles Definitive Edition on Vulkan on Intel GPUs.
- May fix similar issues in Pokkén Tournament or the Xenoblade games on AMD and/or Intel GPUs.
- Fix VertexId and InstanceId on Vulkan.
- Fixes incorrect rendering in Pokémon Mystery Dungeon Rescue Team DX on Vulkan on Intel GPUs.
- May fix similar issues in Metro 2033 Redux, Sniper Elite 3 and others.
- Minor improvement to Vulkan pipeline state and bindings management.
- No known changes in games.
- infra: Migrate to .NET 7
- Update project to .NET 7 and enable TieredPGO.
- Possible performance improvements up to 15% in .NET runtime limited scenarios.
- Ensure all pending draws are done before compute dispatch.
- Nights of Azure 2: Bride of the New Moon now works on Vulkan.
- Vulkan: Implement multisample <-> non-multisample copies and depth-stencil resolve.
- Fate/Extella: The Umbral Star now works on Vulkan on Nvidia and Intel GPUs.
- Sonic Colors: Ultimate now works on Vulkan on Intel GPUs.
- fix: Support FFmpeg 5.1.x for decoding.
- FFmpeg 5.1+ now plays pre-rendered videos properly on Linux.
- GPU: Use a bitmap to track buffer modified flags.
- Improves performance significantly (up to 500%) on Bayonetta 3, Mario + Rabidds Kingdom Battle, Mario + Rabbids Sparks of Hope, Monster Hunter Rise, Super Mario 3D All-Stars (Sunshine and Galaxy), Zombie Army 4: Dead War and possibly other games.
- CI: Fix windows builds missing SourceRevisionId.
- Windows PR builds will now have version IDs again.
- Vulkan: Replace VK_EXT_debug_report usage with VK_EXT_debug_utils.
- No expected changes.
- SPIR-V: Fix tessellation control shader output types.
- Fixes crashes on AMD GPUs running Vulkan on Windows in Bayonetta 3 (after the chapter 1 cutscene) and Luigi's Mansion 3 (right before the title screen).
- nuget: bump System.IdentityModel.Tokens.Jwt from 6.15.0 to 6.25.0
- Updates the JWT Token .NET dependency to version 6.25.0.
- No expected changes.
- AppletAE: Stub SetRecordVolumeMuted.
- Fixes a crash in Bayonetta 3 when entering gameplay in the first mission.
- hid/irs: Stub StopImageProcessorAsync.
- Stubs the StopImageProcessorAsync service.
- Prevents a crash in Game Builder Garage when exiting a game using the IR motion camera.
- Allows Nintendo Labo Toy-Con 03: Vehicle Kit to progress past the "Make" menu.
- Vulkan: Fix indirect buffer barrier.
- Fixes an ErrorDeviceLost crash that could occur in Monster Hunter Rise on Nvidia drivers v522.25, and possibly some older ones, when running the game on Vulkan.
- Vulkan: Use dynamic state for blend constants.
- Reduces memory usage and slightly speeds up Vulkan pipeline compilation in Mario Kart 8 Deluxe.
- Ryujinx.Tests.Unicorn: Implement IDisposable.
- Disposes of Unicorn (CPU emulator used to test validity of ARMeilleure instructions) tests when done. No changes to emulator functionality.
- Attempt to fix issues since github-script v6 upgrade.
- Fixes some issues with GitHub artifact creation. No changes to emulator functionality.
- Avalonia: Use overlay dialog for controller applet.
- Fixes an issue where the controller applet was not showing properly in the Avalonia UI.
- nuget: bump SPB from 0.0.4-build24 to 0.0.4-build27.
- CI: Update workflows.
- Updates Github workflows to the latest version.
- Vulkan: Fix vertex position Z conversion with geometry shader passthrough.
- Fixes black screen in Game Builder Garage on Vulkan.
- Avalonia: update it_IT.json.
- Updates the Italian localization for the Avalonia UI.
- Do not clear the rejit queue when overlaps count is equal to 0.
- No known changes in games.
- Implement the GetSessionCacheMode in SSL service.
- No known changes in games.
- Manage state of NfcManager.
- Fixes Amiibo scanning in Hyrule Warriors Definitive Edition.
- Fix mapping leaks caused by UnmapView not working on Linux.
- Fixes an issue where UnmapView was failing on Linux because the flags combination being passed was invalid. No known changes in games.
- A32: Implement VCVTT, VCVTB.
- Radiant Silvergun is now playable.
- A64: Add fast path for Fcvtas_Gp/S/V, Fcvtau_Gp/S/V and Frinta_S/V instructions.
- May reduce stuttering and improve performance in Mario Strikers: Battle League, Mario Party Superstars and Super Smash Bros. Ultimate.
- Avalonia: Update Polish Translation.
- Updates the Polish localization for the Avalonia UI.
- Vulkan: Dispose TextureStorage when views hit 0 instead of immediately.
- Reduces VRAM usage in Super Mario Odyssey when running on Vulkan with higher resolution scaling values. May improve VRAM usage on other games.
- Fix: Arguments Break when Updating.
- Command line arguments will no longer break after updating the emulator.
- Avoid allocations in .Parse methods.
- No changes in games.
- Vulkan: Fix blit levels/layers parameters being inverted.
- Fixes a crash before the title screen in Mario + Rabbids Kingdom Battle on Nvidia GPUs using Vulkan.
- Fix kernel VA allocation when random allocation fails.
- Fixes an issue with random allocations that may have affected some 32-bit games, such as DoDonPachi Resurrection, although no discernible changes were observed during gameplay.
- Avalonia - Remove on property changed call in Time Zone validation.
- Fixes an issue in the Avalonia UI where using arrow keys in an AutoCompleteTextBox (such as the timezone textbox) would select the first entry and remove all other options.
- Implement OpenDataStorageWithProgramIndex partially.
- Immortals Fenyx Rising now boots, though it doesn't reach gameplay.
- Bit.Trip Runner, Bit.Trip Void, MLB The Show 22 and RollerCoaster Tycoon 3 now go in-game.
- TamperMachine: Fix input mask check.
- Cheats that required pressing buttons to enable/disable them will now work.
- Fix various issues caused by Vertex/Index buffer conversions.
- Fixes some bugs introduced in 1.1.254 and 1.1.278. No known changes in games.
- Fix primitive count calculation for topology conversion.
- Fixes a regression that caused random triangles to appear on the map in Luigi's Mansion 3.
- Fix phantom configured controllers.
- Fixes controllers not being disabled properly. Controller applet will no longer ask for a single controller when only one is configured.
- Improve shader BRX instruction code generation.
- Improves the code generated for BRX instructions. No known changes in games.
- bsd: Check if socket is bound before calling RecvFrom().
- Fixes a crash in Overpass when selecting a career mode.
- Vulkan: Fix sampler custom border color.
- Fixes shadows in Xenoblade Chronicles 2 cutscenes when using Vulkan.
- Fix disposed textures being updated on TextureBindingsManager.
- Fixes a fatal error crash in Crash Team Racing Nitro-Fueled when using Vulkan.
- GPU: Pass SpanOrArray for Texture SetData to avoid copy.
- Improves performance slightly in NieR Automata: The End of Yorha Edition and UE4 games.
- Vulkan: Fix some issues with CacheByRange.
- Fixes broken or missing geometry in eBaseball Powerful Pro Yakyuu 2022 and potentially other games that had similar issues with quads.
- Change NvMap ID allocation to match nvservices.
- Fixes Animal Crossing: New Horizons crashing on start-up without a save file.
- Fixes other miscellaneous crashes and texture corruptions in Animal Crossing: New Horizons.
- Fixes random crashing in The Legend of Zelda: Breath of the Wild.
- Fixes random crashing when entering or exiting Pokémon centres in Pokémon Sword/Shield.
- Fix memory corruption in BCAT and FS Read methods when buffer is larger than needed.
- Fixes a crash on the title screen of Sword Art Online: Alicization Lycoris, which now goes in-game.
- Fix shader SULD (bindless) instruction using wrong register as handle.
- Fixes a regression that caused vertex explosions in Sea of Solitude: The Director's Cut.
- Fixes rendering in Shadowrun Returns.
- Support use of buffer ranges with size 0.
- Fixes a regression from 1.1.278 that caused a crash in Fire Emblem Warriors: Three Hopes after the Blue Lions prologue ended.
- Vulkan: Fix buffer texture storage not being updated on buffer handle reuse.
- Fixes an issue where models would randomly swap back to an old animation frame in UE4 games.
- Avalonia - Fixes updater.
- Autoupdating will now be possible on Avalonia builds.
- Avalonia: Fix About window not displaying translated window titles.
- "About" window will now have a properly translated title in different languages on the Avalonia GUI.
- Allow Surface Flinger frame enqueue after process has exited.
- Fixes an exception that could occur in some rare cases while ending emulation.
- Volume Hotkeys.
- Adds hotkeys to increase and decrease the volume by steps of 5%.
- Default is currently unbound. This can be mapped in Avalonia or via the config json file.
- ARMeilleure: Add gfni acceleration.
- Implements gfni instructions to accelerate general purpose bit-shuffling.
- New instructions are useable on Intel (Icelake 2021 & later) and AMD Zen 4 (2022 & later) CPUs.
- Avoid allocating unmanaged string per shader.
- No known changes in games.
- fatal: Implement Service.
- No changes in games.
- Fix incorrect tessellation inputs/outputs.
- Fixes missing graphics in The Legend of Heroes: Trails from Zero.
- Corrects ground rendering in The Witcher 3: Wild Hunt when using Vulkan.
- Fix SSL GetCertificates with certificate ID set to All.
- Fixes a crash on launch in Life is Strange Remastered. The game is now playable.
- Vulkan: Zero blend state when disabled or write mask is 0.
- May reduce stuttering and slightly improve performance on Intel and AMD graphics cards.
- Fix ListOpenContextStoredUsers and stub LoadOpenContext.
- Fixes a crash when launching the games in Prinny Presents NIS Classics Volume 3: La Pucelle: Ragnarok / Rhapsody: A Musical Adventure. The games are now playable.
- Fpsr and Fpcr freed.
- May reduce stuttering in Tony Hawk's Pro Skater 1 + 2.
- May further improve pre-rendered video playback.
- Convert Quads to Triangles in Vulkan.
- Improves Vulkan performance in Fast RMX on Intel GPUs.
- May improve Vulkan performance in The Legend of Zelda: Skyward Sword HD and all 3 Xenoblade games on Intel GPUs. Might improve Vulkan performance in all of the above games on AMD GPUs. Nvidia Vulkan appears to be unaffected.
- OpenGL: Fix blit from non-multisample to multisample texture.
- Fixes a rendering regression in Fate/EXTELLA.
- Avalonia - Misc changes to UX.
- Settings navbar is now full-sized.
- Alignment in a few windows has been fixed.
- Number of each controller type is now listed instead of ID.
- Volume widget on status bar is now aligned and localizable.
- Allow bindless textures with handles from unbound constant buffer.
- Fixes Sniper Elite 3 crashing on startup.
- Avalonia - Use embedded window for Avalonia.
- Improves frame pacing of games when using the Avalonia UI.
- Fixes unresponsiveness of the Avalonia UI when using Vulkan.
- Fixes overlays glitching on fullscreen on Avalonia.
- Fixes an issue where a previous frame would sometimes show up on games played with the new UI.
- Allows switching graphics backends and preferred GPU on Avalonia without requiring a restart of the emulator.
- Implemented in IR the managed methods of the ShlReg region of the SoftFallback class.
- No known changes in games.
- A32/T32/A64: Implement Hint instructions (CSDB, SEV, SEVL, WFE, WFI, YIELD).
- Needed by Hanayaka Nari Waga Ichizoku Modern Nostalgie and Meiji Katsugeki Haikara Ryuuseigumi - Seibai Shimaseu, Yonaoshi Kagyou.
- Periodically Flush Commands for Vulkan.
- Improves performance on Pokémon Sword/Shield and The Legend of Zelda: Breath of the Wild when using Vulkan.
- Fix partial unmap reprotection on Windows.
- Fixes a regression in Super Smash Bros. Ultimate that caused some punctuation text to be missing.
- Implement PLD and SUB (imm16) on T32, plus UADD8, SADD8, USUB8 and SSUB8 on both A32 and T32.
- Allows more applications to boot through Vita2HOS.
- May increase compatibility with other 32-bit titles and homebrew.
- T32: Implement Asimd instructions.
- Allows VITA-8 to boot through Vita2HOS.
- May increase compatibility with other 32-bit titles and homebrew.
- Fix bindless 1D textures having a buffer type on the shader.
- Fixes black screen on Prinny: Can I Really Be the Hero? and Prinny 2: Dawn of Operation Panties, Dood!
- Fix increment on Arm32 NEON VLDn/VSTn instructions with regs > 1.
- No More Heroes and No More Heroes 2: Desperate Struggle now go in-game.
- Fixes several missing visual effects in Pikmin 3 Deluxe.
- Fixes bad voice audio quality in Ni no Kuni Wrath of the White Witch and bad sound quality in Double Dragon Neon and Sky Gamblers: Storm Raiders.
- Fixes a crash in Valkyria Chronicles when attempting to view the "Encounter at Bruhl" episode.
- Fix R4G4B4A4 format on Vulkan.
- Fixes text rendering in Ni no Kuni Wrath of the White Witch and Ys VIII: Lacrimosa of Dana.
- Fixes menu icons in Super Kirby Clash and Vroom in the Night Sky.
- Scale SamplesPassed counter by RT scale on report.
- Fixes gameplay issues caused by resolution scaling in Splatoon 2 and Splatoon 3, namely specials charging up faster and points being multiplied at higher resolutions, and being unable to swim in ink at lower resolutions.
- Implement VRINT (vector) Arm32 NEON instructions.
- Ni no Kuni Wrath of the White Witch now goes in-game, though it requires a save file.
- T32: Add Vfp instructions.
- Allows the triangle homebrew to work on Vita2HOS.
- Implement Thumb (32-bit) memory (ordered), multiply, extension and bitfield instructions.
- Allows Vita2HOS to go a bit further when launching applications.
- Optimize placeholder manager tree lookup.
- Reduces the time to stop emulation or close the program when running games with a large amount of memory mappings.
- Affected games include: Shin Megami Tensei V, Triangle Strategy and possibly some UE4 titles.
- Do not output ViewportIndex on SPIR-V if GPU does not support it.
- Fixes a crash in Super Smash Bros. Ultimate on older GPUs (pre-Maxwell) using Vulkan.
- Rebind textures if format changes or they're buffer textures.
- Fixes a regression in Mario Party Superstars in the spotlight minigame where the red spotlight would not render.
- May affect other titles similarly affected by the regression.
- Allocate work buffer for audio renderer instead of using guest supplied memory.
- Fixes an access violation crash on Urban Trial Tricky that started happening on 1.1.100.
- Fixes a crash on boot on Mutant Year Zero: Road to Eden.
- Add ADD (zx imm12), NOP, MOV (rs), LDA, TBB, TBH, MOV (zx imm16) and CLZ thumb instructions.
- Allows Vita2HOS to launch again.
- Implement VRSRA, VRSHRN, VQSHRUN, VQMOVN, VQMOVUN, VQADD, VQSUB, VRHADD, VPADDL, VSUBL, VQDMULH and VMLAL Arm32 NEON instructions.
- Allows Baldur's Gate/ Baldur's Gate II Enhanced Editions, Dies irae -Amantes amentes-, Planescape: Torment/ Icewind Dale Enhanced Editions and Star Wars: Republic Commando to go in-game, possibly fixes other 32-bit games.
- Restride vertex buffer when stride causes attributes to misalign in Vulkan.
- Fixes vertex explosions in Splatoon 3: Splatfest World Premiere on AMD graphics on Windows, and a crash on Mesa drivers. May improve other games that suffered from vertex explosions on AMD GPUs.
- Clean up rejit queue.
- Code cleanup. No expected changes in games.
- Implemented in IR the managed methods of the Saturating region of the SoftFallback class (the SatQ ones).
- Greatly improves performance of pre-rendered cutscenes in Astral Chain, Crash Team Racing Nitro-Fueled, Mario + Rabbids: Kingdom Battle, Tony Hawk's Pro Skater 1 + 2, and possibly other games.
- Transform shader LDC into constant buffer access if offset is constant.
- Fixes intermittent black screen in Ys VIII: Lacrimosa of DANA.
- bsd: improve socket poll.
- No expected changes in games.
- bsd: implement SendMMsg and RecvMMsg.
- No expected changes in games.
- Bsd: Fix NullReferenceException in BsdSockAddr.FromIPEndPoint().
- Fixes a crash with Guest Internet Access enabled in Victor Vran Overkill Edition.
- Change vsync signal to happen at 60hz, regardless of swap interval.
- Fixes voice lines becoming delayed during cutscenes in Tokyo Mirage Sessions #FE Encore.
- Might fix some game speed issues in The Legend of Zelda: Link's Awakening and Breath of the Wild.
- bsd: Fix Poll(0) returning ETIMEDOUT instead of SUCCESS.
- No expected changes in games.
- sfdsnres: fix endianess issue for port serialisation.
- No expected changes in games.
- account: Implement LoadNetworkServiceLicenseKindAsync.
- Required for Pokémon Legends: Arceus v1.1.1 to run with Guest Internet Access enabled. The game does not yet boot with this option on, as it requires another change as well.
- Bsd: Fix ArgumentOutOfRangeException in SetSocketOption.
- Allows Minecraft to boot with "enable guest internet access" DISABLED. Enabling will still cause a crash.
- Replace image format magic numbers with enums.
- Refactors GPU texture format tables to match official NVIDIA open-source headers.
- Vertex attribute formats are now represented with their own enum.
- No expected changes in games.
- Avalonia - Update Japanese translation.
- Brings the Japanese locale up to date for the Avalonia UI.
- Optimize kernel memory block lookup and consolidate RBTree implementations.
- No known changes, though it might positively affect UE4 games.
- Avalonia - Update Turkish Translation.
- Updates Turkish localization for the Avalonia UI.
- Update de_DE.json.
- Updates German localization for the Avalonia UI.
- Update zh_CN.json.
- Updates simplified Chinese localization for the Avalonia UI.
- Avalonia - Add Polish Translation.
- Adds a Polish localization for the Avalonia UI.
- Avalonia - Display language names in their corresponding language under "Change Language".
- Changes language names to their native ones in the Avalonia UI. Before, they were all in English.
- bsd: Fix Poll writting in input buffer.
- Fixes an oversight in the code. No expected changes to emulator functionality.
- Fast path for Inline-to-Memory texture data transfers.
- Fixes texture corruption on games that use OpenGL on the Switch, such as Blossom Tales II, Digimon Story Cyber Sleuth, Layton's Mystery Journey, River City Girls Zero, Super Perils of Baking, and more.
- pctl: Implement EndFreeCommunication.
- Fixes a parental controls service crash in Among Us, Colors Live, Game Builder Garage and Splatoon 3: Splatfest World Premiere.
- misc: Fix missing null terminator for strings with pchtxt.
- No changes in games.
- ARMeilleure: Hardware accelerate SHA256.
- No known changes in games.
- Implement some 32-bit Thumb instructions.
- Implements LDM/STM, LDAEX/STLEX, LDR/STR (with register offset shifted by immediate) and LDRD/STRD instructions.
- No known changes in games.
- Update PPTC dialog text to match label and tooltip.
- The warning box now properly states that it's queuing a PPTC rebuild and not deleting it.
- Check if game directories have been updated before refreshing GUI.
- Prevents both UIs from reloading the games list every time settings are updated, and refreshes only if the game folder changes.
- Use RGBA16 vertex format if RGB16 is not supported on Vulkan.
- Xenoblade Chronicles 3 now boots on AMD graphics cards.
- Change 'Purge PPTC Cache' label & tooltip to reflect function behavior.
- It is now named "Queue PPTC Rebuild" as the option doesn't purge it completely.
- A few minor documentation fixes.
- Small code cleanup. No changes in games.
- Removed unused usings.
- Small code cleanup. No changes in games.
- Skipped over the last "Count" key explicitly.
- Small code cleanup. No changes in games.
- Fix SpirV parse failure.
- Fixes the Mii editor applet on Vulkan.
- Removed extra semicolons.
- Minor code cleanup. No expected changes.
- Avalonia - Couple fixes and improvements to Vulkan.
- Fixes a crash that occurred when toggling fullscreen.
- Adds fallback to OpenGL if Vulkan is not available.
- Adds swapchain present mode control to GTK.
- Fixes screenshot feature on Avalonia Vulkan.
- Fixes favorites not being saved on Avalonia.
- Vulkan: Add ETC2 texture formats.
- Adds missing texture formats to Vulkan. On supported Intel and AMD GPUs, games that use these formats, such as Radiation Island or Vegas Party, should now work on Vulkan.
- am: Stub SetWirelessPriorityMode, SaveCurrentScreenshot and GetHdcpAuthenticationState.
- Fixes Xenoblade Chronicles 3 photo gallery crash.
- Fixes Hulu app crashing on startup.
- ControllerApplet: Override player counts when SingleMode is set
- Reduces controller applet spam in certain titles such as Splatoon 2, Xenoblade Chronicles 3 and other titles that don't like multiple connections.
- Any title that had significant controller applet log spam may be helped.
- PreAllocator: Check if instruction supports a Vex prefix in IsVexSameOperandDestSrc1.
- No changes expected in games.
- Fix texture bindings using wrong sampler pool in some cases.
- Fixes a regression that caused flickering in Animal Crossing: New Horizons, Atelier Ryza (only with Vsync disabled) and No More Heroes 3.
- OpenGL: Limit vertex buffer range for non-indexed draws.
- Fixes the triangle glitch on fog/smoke in Super Mario Odyssey.
- Fixes a TDR/driver crash in Xenoblade Chronicles 3 (only on OpenGL).
- Fix blend with RGBX color formats.
- Fixes broken blending in La-Mulana.
- Rename ToSpan to AsSpan.
- Small code cleanup.
- Add Japanese translation to Avalonia UI.
- OpenGL: Fix clear of unbound color targets.
- Fixes a regression that caused New Super Mario Bros U Deluxe to crash with a NullReferenceException. May fix other games with the same problem.
- Implement Arm32 Sha256 and MRS Rd, CPSR instructions.
- Mario Kart 8 Deluxe with update 2.1.0 is now playable.
- Implement HLE macros for render target clears.
- Adds a HLE macro for render target clears (color and depth-stencil).
- May result in a minor performance improvement on games that render to array or 3D textures.
- Fix Multithreaded Compilation of Shader Cache on OpenGL.
- Fixes a regression from 1.1.200 that caused OpenGL to build caches at boot on a single thread. Now it's properly multithreaded again.
- Sfdnsres: Stub ResolverSetOptionRequest.
- Fixes a crash on boot in Ark: Survival Evolved when Guest Internet Access is enabled.
- Allows Danger Mouse to go in-game.
- Fix resolution scale values not being updated.
- Fixes a regression that caused graphical glitches on Xenoblade games when using resolution scaling.
- Fix geometry shader passthrough fallback being used when feature is supported.
- Fixes a regression on Marvel Ultimate Alliance 3 on Maxwell and newer NVIDIA GPUs when using OpenGL.
- SPIR-V: Initialize undefined variables with 0.
- Fixes tilt shift blur effect in The Legend of Zelda: Link's Awakening on NVIDIA GPUs.
- Fixes block flickering in Splatoon 2 on newer NVIDIA GPUs.
- Fix a crash occurring when trying to launch a game with Vulkan on FlatHub releases.
- Vulkan backend.
- Implemented a Vulkan graphics backend. You can now switch between OpenGL and Vulkan in Settings > Graphics > Graphics Backend.
- Implemented a GPU selector in the same menu, labeled "Preferred GPU", for systems with more than one graphics card. Keep in mind you can only select the GPU that Vulkan will use, not the one OpenGL will use.
- Added a "Texture Recompression" option in graphics settings which, when enabled, will reduce VRAM usage in exchange for slightly worse texture quality (affects both Vulkan and OpenGL). We recommend this for graphics cards that have less than 4GB VRAM.
- When using Vulkan, AMD and Intel GPUs will see large improvements in compatibility and performance across the board. Use latest graphics drivers for the best experience.
- Implemented SPIR-V shader backend. Reduces shader compilation times considerably for all GPU vendors, compared to OpenGL's GLSL backend. This results in much less stuttering on first runs.
- Vulkan supports supersampling at higher than 2x the display resolution, which acts as antialiasing when the rendering resolution is higher than the display's, whereas OpenGL only supports it up to 2x the screen resolution.
- Vulkan may not have graphical glitches that OpenGL has, such as the co-op player 2 screen in Fire Emblem Warriors: Three Hopes.
- Certain games, such as Pokémon Legends: Arceus, Pokkén Tournament, Super Mario Odyssey and The Legend of Zelda: Breath of the Wild, have shown slightly better performance on Nvidia Vulkan than on Nvidia OpenGL.
- Shader caches from before this change will be deleted, and new shader caches will be starting from zero. This is due to Vulkan and OpenGL caches now being shared.
- Shader caches built with Vulkan will now be usable with OpenGL and vice versa.
- Vulkan shaders do not require to be rebuilt after driver updates; however, OpenGL shaders still do.
- Move partial unmap handler to the native signal handler.
- Greatly improves performance and reduces stuttering on Windows 11.
- Minor Avalonia UI verbiage/case fixes Across languages.
- Avalonia: Another Cleanup.
- Fixes crashes in the Avalonia UI's DLC Manager that would occur when managing DLC for a game that already had DLC added to it, when selecting 1 or more DLC files and adding them, or when clicking "Remove", "Remove All" or "Save" for titles with no DLC.
- Avalonia: Cleanup UserEditor a bit.
- Small code cleanup for the user profile editor in the Avalonia UI.
- Fix DMA linear texture copy fast path.
- Fixes a crash in SD Gundam Battle Alliance Demo.
- Add a sampler pool cache and improve texture pool cache.
- Improves performance on Super Zangyura.
- Backport Avalonia menu/settings tooltips to GTK where possible.
- New tooltips from the Avalonia UI are now on the current UI as well.
- misc: Reformat Ryujinx.Audio with dotnet-format.
- Resolution scaling hotkeys.
- Adds hotkeys for changing resolution scaling while a game is running. One increases resolution by a factor of 1 up to 4x; the other decreases resolution by a factor of 1 up to 1x. The hotkeys aren't configured by default, requiring the user to set them up on Avalonia.
- Add support for conditional (with CC) shader Exit instructions.
- Fixes bloom in Tokyo Mirage Sessions.
- feat: add traditional chinese translate (Avalonia).
- Adds a traditional Chinese localization for the Avalonia UI.
- Avalonia - Make menuitems toggleable on textclick.
- Makes it so checkboxes can be enabled/disabled when pressing on their corresponding text on the Avalonia GUI.
- Avalonia - Use content dialog for user profile manager.
- Moves the user profile window and related windows to a single content dialog on the Avalonia GUI.
- fix: Ensure to load latest version of ffmpeg libraries first.
- Fixes a crash related to loading an older version of ffmpeg, instead of the one shipped with the emulator.
- Minor GTK & Avalonia UI verbiage/case fixes.
- Small text adjustments in the UIs.
- Fix decoding of block after shader BRA.CC instructions without predicate.
- Fixes green lights in Jump Force.
- Avoid adding shader buffer descriptors for constant buffers that are not used.
- May slightly improve performance in some games.
- Avoid scaling 2d textures that could be used as “3d“.
- Fixes red-tinted textures when upscaling in Agatha Christie: Hercule Poirot - The First Cases, A Hat in Time, Cruis'n Blast, Demon Gaze Extra, Far: Changing Tides, Lost in Random, Pascal's Wager: Definitive Edition, Sherlock Holmes: Devil's Daughter, World's End Club, possibly more.
- Reduce some unnecessary allocations in DMA handler.
- Reduces load times slightly and reduces stutters during pre-recorded videos.
- Remove dependency for FFmpeg.AutoGen and Update FFmpeg to 5.0.1 for Windows.
- Fixes games crashing on Linux whenever an mpeg pre-rendered video would play.
- BSD: Allow use of DontWait flag in Receive.
- No known changes in games.
- Ava/MainWindow: Do not show Show Console menu item on non-Windows.
- Hides "Show Console" on Linux in the Avalonia UI.
- Handle the case where byte size option values are sent to BSD.
- Fixes a crash in the Super Mario Odyssey online mod when connecting to the server. Note that the SMO online mod still may not work properly.
- Avalonia - Add border to Flyouts.
- Adds a border to flyouts (menus, dropdowns, etc) to easily tell them from the background.
- Propagate Shader phi nodes with the same source value from all blocks.
- Fixes flickering in Monster Hunter Rise: Sunbreak (still requires further changes to get in-game).
- Avalonia - Make tooltips more useful and descriptive, update Spanish localization.
- Expands several tooltips to better explain what their respective settings do, and updates the Spanish localization accordingly.
- Avalonia - Couple fixes and improvements.
- Fixes a crash in the Avalonia UI when bringing up the autoupdater.
- Reduces size of cheat window.
- Enables Tiered Compilation (speeds up Avalonia UI startup time).
- Removes compiler warnings from the Avalonia project.
- Avalonia - Further Optimize Chinese Translation.
- Updates the Simplified Chinese localization for Avalonia.
- UI - Avalonia Part 3.
- Adds the remaining Avalonia windows. The UI is now at parity with the current GTK UI.
- Avalonia - Use loaded config when assigning controller input.
- Fixes a crash in the upcoming Avalonia UI that occurs when mapping controller input while a config hasn't been saved for that controller.
- Avalonia - Ensure mouse cursor is only hidden when mouse is in renderer.
- Fixes a bug in the upcoming Avalonia UI where the mouse cursor wouldn't be hidden properly.
- Relicense Ryujinx.Audio under the terms of the MIT license
- Adjusts the licence of Amadeus from LGPLv3 to MIT.
- Fix deadlock in mouse input on Avalonia.
- Fixes a deadlock in the upcoming Avalonia UI that occurs if you open any window while direct mouse input is enabled.
- Fix Vi managed and stray layers open/close/destroy.
- Portal and Portal 2 are now playable.
- Implement CPU FCVT Half <-> Double conversion variants.
- Required by Portal and Portal 2 (however they still require further changes to get in-game).
- Add support for alpha to coverage dithering.
- Fixes missing dithering (semi-transparency) effect on objects close to the camera and at the edges of the draw distance in Pokémon Legends: Arceus.
- UI - Avalonia Part 2.
- Adds settings window and subsequent windows and controls to the upcoming Avalonia-based user interface.
- ptm: Stub GetTemperature.
- Stubs GetTemperature service needed by the latest version of nx-hbmenu (Homebrew menu).
- Bindless elimination for constant sampler handle.
- Allows the Monster Hunter Rise: Sunbreak update to render (still requires further changes to get in-game).
- ui: Fix timezone abbreviation since #3361.
- Fixes timezone abbreviation text in system settings.
- Add Simplified Chinese to Avalonia (V2).
- Adds a Chinese localization to the upcoming Avalonia UI.
- Account for pool change on texture bindings cache.
- Fixes a regression from 1.1.149 that caused garbled textures on Super Zangyura.
- timezone: Fix regression caused by #3361.
- Fixes games that were crashing due to the change in 1.1.156.
- time: Make TimeZoneRule blittable and avoid copies.
- No known changes in games.
- Fix ThreadingLock deadlock on invalid access and ExitProcess.
- Fixes a specific case of the emulator freezing when closing. Does not fix all instances where this happens, however.
- Ensure texture ID is valid before getting texture descriptor.
- Fixes a crash in A Hat in Time that would occur after progressing past a certain point in the game.
- UI: Some Avalonia cleanup.
- Cleans up some of the new GUI code. No changes to emulator functionality.
- Rewrite kernel memory allocator.
- Cleans up the kernel memory allocator code. No changes expected in games.
- Fix doubling of detected gamepads on program start.
- May fix some instances of controller duplicates appearing on the Input Device dropdown.
- Account for res scale changes when updating bindings.
- Fixes graphical regression when scaling certain games (XCDE/XC2).
- Optimize Texture Binding and Shader Specialization Checks.
- Improves performance in Super Mario Odyssey, The Legend of Zelda: Breath of the Wild, Xenoblade Chronicles Definitive Edition, and possibly others.
- Fix VIC out of bounds copy.
- Fixes a video crash in LOOPERS.
- Support Array/3D depth-stencil render target, and single layer clears.
- Fixes missing crowd in Mario Strikers: Battle League.
- Less invasive fix for EventFd blocking operations.
- Return to single-thread approach for handling sockets.
- Fixes issues in some games (Pokémon Sword/Shield) where a Hipc response error would crash early into launching.
- Allow concurrent BSD EventFd read/write.
- Fixes a regression in Diablo II: Resurrected where the game would just hang on a black screen on boot.
- Ignore ClipControl on draw texture fallback.
- Fixes some games rendering upside-down on AMD and Intel graphics cards, such as Moero Chronicle Hyper. Nvidia is unaffected.
- Fix instanced indexed inline draw index count.
- Fixes index count used on the draw passing the count for a single instance.
- Fixes performance issues in the 3D sections on Genkai Tokki Moero Crystal H.
- Fix instanced indexed inline draws.
- Fixes remaining issues with 3D sections in Genkai Tokki Moero Crystal H. Also fixes performance drops in the game.
- Remove freed memory range from tree on memory block disposal.
- Fixes an issue where the emulator could crash after stopping emulation and starting another game afterwards.
- Extend uses count from ushort to uint on Operand Data structure.
- Taiko Risshiden V DX now goes in-game.
- Copy dependency for multisample and non-multisample textures.
- Fixes black screen in Perky Little Things.
- Partially fixes 3D sections in Genkai Tokki Moero Crystal H.
- Fix a potential GPFIFO submission race.
- No expected changes in games.
- Fix 3D semaphore counter type 0 handling.
- Fixes a bug where 0 would be released from counter instead of a semaphore payload.
- The Elder Scrolls V: Skyrim now goes in-game.
- infra: Switch to win10-x64 RID and fix PR comment for Avalonia and SDL2 artifact rename.
- Windows Ryujinx builds now target Windows 10/11.
- Windows 7, 8 and 8.1 are no longer supported.
- Avalonia builds posted on PRs by the GitHub bot will be hidden under an "Experimental GUI (Avalonia)" tab.
- Headless builds will move back under the "GUI-less (SDL2)" tab.
- Rewrite SVC handler using source generators rather than IL emit.
- Replace all instances of Reflection.Emit from the codebase with new source generators for runtime code generation.
- Ryujinx codebase should now be eligible for .NET Ahead-of-Time compilation.
- Fixes black screen deadlock on boot in Genkai Tokki Moero Crystal H.
- Refactor CPU interface to allow the implementation of other CPU emulators.
- Refactors the existing CPU related interfaces (and also adds new ones) to allow other CPU emulators to be implemented. This includes not only JIT-based emulators, but also hypervisors (for example, Apple Hypervisor).
- No expected changes in games.
- Allow loading NSPs without a NCA inside.
- Homebrew applications that are packed as NSP files can now boot.
- Don't force DPI aware on Avalonia.
- Fixes an issue where per-monitor DPI was not working on the new UI. Does not affect the current UI.
- Fix audio renderer error message result code base.
- Changes how this specific error is displayed on the console. No changes to emulator functionality.
- UI - Scale end framebuffer blit.
- Fixes rendering when desktop scaling is over 150%.
- Fixes the Avalonia updater.
- Updates the auto-updater code to include the Avalonia paths.
- Fix Amiibo image path.
- Fixes a regression that caused crashing when an Amiibo was scanned.
- gh-actions: Prefix Avalonia builds with test- and disable pre-release.
- Fixes the updater downloading the wrong Ryujinx build.
- Pre-release build.
- Add Avalonia builds to release.
- Avalonia builds will now be downloadable on GitHub PR artifacts.
- misc: Clean up of CS project after Avalonia merge.
- No expected changes in emulator functionality.
- sdl2: Update to Ryujinx.SDL2-CS 2.0.22.
- Fixes G-Shark gamepads.
- Fixes wired PowerA GameCube controllers.
- Fixes broken motion controls on Linux.
- Likely fixes compatibility with more unofficial controllers.
- Avalonia UI: Part 1
- Implements the foundations for the UI update to Avalonia.
- Further parts will be merged before the UI is active.
- Prefetch capabilities before spawning translation threads.
- Fixes a race condition that could cause games to crash when recompiling shaders.
- Implement Viewport Transform Disable.
- Fixes the interface in Dragon Quest Builders.
- Fixes the title screen in River City Girls Zero.
- Fixes a regression that caused broken menus in Zombies Ate My Neighbors and Ghoul Patrol.
- Fixes save slot thumbnails and screen copies in the NSO N64 emulator (Mario Kart 64 monitors), screen copies in the Citra RetroArch core, icons in RetroArch, possibly other similar bugs.
- hid: Various fixes and cleanup.
- Implements and cleans up various hid functions and services.
- RetroArch and likely other similar homebrew are now bootable.
- Add alternative "GL" enum values for StencilOp.
- Fixes some broken graphics in the Citra RetroArch core, possibly fixes graphics in other homebrew applications.
- Enable JIT service LLE.
- Enables the JIT service, required by the NSO Nintendo 64 emulator and Super Mario 3D All-Stars (Super Mario 64), allowing them to run. It is not an actual service implementation, rather it runs the service on the firmware, so this is an "LLE" approach as opposed to the usual HLE approach where the service is re-implemented on the emulator.
- Requires firmware version 10.0.0 minimum.
- Fix shared memory leak on Windows.
- Fixes a memory leak that would occur when stopping and restarting emulation.
- infra: Warn about support drop of old Windows versions.
- Shows a warning message to users on Windows 7, 8, 8.1 and older Windows 10 versions stating that Ryujinx support for these versions will be dropped starting June 1st, 2022.
- Remove AddProtection count > 0 assert.
- Small code correction. This change only affects debug builds.
- Change github build workflow to not use hardcoded versioning
- Fixes an oversight that caused a few PR builds to display an incorrect version number.
- Implement PM GetProcessInfo Atmosphere extension (partially).
- Adds support for Skyline + ARCropolis mods. Super Smash Bros Ultimate mods that rely on ARCropolis are now usable on Ryujinx.
- Implement code memory syscalls.
- Implements code memory related syscalls, used by applications that generate and/or modify code at runtime.
- Required by emulators that use a JIT (NSO N64) and mods that patch for function hooking game code on-the-fly (Skyline/ARCropolis). Note that neither will work with these changes alone.
- Support memory aliasing.
- Increases accuracy of fast memory manager modes, allowing for things like IPC, shared memory, transfer memory and code memory to be implemented properly.
- Paves the way for running sysmodules with fast memory manager modes enabled, as well as running the NSO Nintendo 64 emulator and the Skyline mod manager for Super Smash Bros Ultimate in the future.
- Fast memory manager modes will no longer work on Windows 7 and Windows 8.
- Fix flush action from multiple threads regression.
- Fixes graphical issues in Catherine: Full Body and Pokémon Legends: Arceus due to a regression introduced in 1.1.107.
- Restrict cases where vertex buffer size from index buffer type is used.
- Fixes a regression introduced in 1.1.95 that caused visual glitches on certain particle effects in Xenoblade 2 (visible for instance in Godfrey's awakening).
- Fix various issues with texture sync.
- Fixes a regression in Xenoblade titles where visuals would randomly flash.
- May fix random bugs in Breath of the Wild such as "air swimming" or other texture streaming bugs.
- T32: Implement load/store single (immediate).
- No changes expected in games.
- Fix broken motion controls when using SDL2.
- Fixes motion controls on multiple games such as Mario Kart 8 Deluxe; The Legend Of Zelda: Breath of the Wild; Kirby And The Forgotten Land and many others when enabled using the default SDL2 option.
- Implement HwOpus multistream functions.
- Implements multistream related Opus decoding functions.
- Required by MLB The Show 22 and potentially others.
- ReactiveObject: Handle case when oldValue is null.
- Fixes a possible null exception in the future Avalonia UI.
- ForceDpiAware: X11 implementation.
- Makes Ryujinx DPI aware on X11 for Linux.
- New shader cache implementation.
- Rewrites both the memory shader cache and the disk shader cache.
- Old shaders will automatically be converted to the new format when you first boot a game with an existing shader cache.
- Fixes a slight performance degradation that could occur over time as more shaders were cached.
- Closing a game will now be slightly faster as the shader cache no longer needs to be recompressed (since shader caches no longer use .zip archives).
- It is now possible to close the emulator while shaders are loading.
- Fixes crashing due to corrupted shaders. The emulator will now rebuild the broken shaders and boot normally.
- Bindless textures, used by Mario Party Superstars, Pokémon Brilliant Diamond/Shining Pearl, and the vast majority of UE4 games (No More Heroes 3, Shin Megami Tensei V), can now be cached by the emulator's shader cache. These games will be a lot smoother as a result.
- Completely fixes long boot times on Pokémon BDSP after 2nd run.
- Fixes graphical glitches in Yokai Watch 1, possibly other games.
- Fixes a freeze in the Near Forest in Atelier Sophie 2: The Alchemist of the Mysterious Dream.
- Fix tail merge from block with conditional jump to multiple returns
- Fixes audio and visual slowdowns after scanning an Amiibo in games like Animal Crossing: New Horizons. May help similar issues in other titles.
- Implement VMAD shader instruction and improve InvocationInfo and ISBERD handling.
- Fixes homebrew that uses Nouveau OpenGL and geometry or tessellation shaders. No known changes in commercial games.
- Allow copy texture views to have mismatching multisample state.
- Fixes black screen in Pinball FX3.
- Lop3Expression: Optimize expressions.
- No changes expected in games.
- Remove save data creation prompt.
- Save data directories will now be created automatically and logged in the console.
- Calculate vertex buffer size from index buffer type.
- Prevents out of memory errors and crashes on Super Mario 64 (SM3DAS) and Perky Little Things. Note that these games need more fixes to work.
- amadeus: Improve and fix delay effect processing.
- Reworks the sound delay effect processing and cleans up the code.
- Fixes a bug in the surround sound code. No known changes in games.
- HID: Signal event on AcquireNpadStyleSetUpdateEventHandle.
- Fixes random controller disconnects on Flip Wars.
- LibHac: Update to 0.16.1.
- Don't fail when EnsureApplicationSaveData tries to create a temporary storage that already exists. Should allow NSO titles to boot again.
- Support reading XCI files that contain the initial data/key area.
- Add key sources for system version 14.0.0
- amadeus: Update to REV11.
- This implements all of the ABI changes from REV11 from the new 14.0.0 firmware update.
- To our knowledge no games on the Nintendo Switch use these new features at the current moment, but future games likely will.
- Do not clamp SNorm outputs to the [0, 1] range on OpenGL.
- Fixes reflections and lighting on LEGO Star Wars: The Skywalker Saga.
- Fixes white geometry in Fast RMX.
- Implement primitive restart draw arrays properly on OpenGL.
- Fixes white lines in the sky on some Hatsune Miku: Project DIVA Mega Mix clips.
- Do not force scissor on clear if scissor is disabled.
- Fixes menu and text glitches on Kirby and the Forgotten Land, and maybe other titles with similar problems.
- Small graphics abstraction layer cleanup.
- No known changes in games.
- Fix shader textureSize with multisample and buffer textures.
- Fixes graphical issues in Rune Factory 5 and Bubble Bobble 4 Friends.
- infra: Put SDL2 headless release inside a GUI-less block in PR.
- Download links of PR builds without an user interface will now be hidden. This avoids people downloading them unknowingly.
- Support NVDEC H264 interlaced video decoding and VIC deinterlacing.
- Fixes videos in non-Japanese versions of Layton's Mystery Journey. The game now plays them instead of crashing.
- Fixes every video in Star Wars Episode I: Racer.
- hle: Some cleanup.
- Cleaned up the HLE and VirtualFileSystem folders in the code. No changes expected in games.
- Memory.Tests: Make Multithreading test.
- Makes the intermittent test failure more explicit so it’s not confused with other errors.
- Don't restore Viewport 0 if it hasn't been set yet.
- Fixes a driver crash when starting some games, introduced in 1.1.79.
- Games that were black screening with a GPU syncpoint error should now boot correctly (Triangle Strategy, DBFZ etc.)
- De-tile GOB when DMA copying from block linear to pitch kind memory regions.
- Fixes texture corruption on games that use OpenGL on the Switch, including Cartoon Network: Battle Crashers, Digimon Story Cyber Sleuth: Complete Edition, Ghoul Patrol (partially), Professor Layton's Mystery Journey, Snack World: The Dungeon Crawl, Zombies Ate My Neighbours (partially), among others.
- Fix OpenGL issues with RTSS overlays and OBS Game Capture
- RTSS and overlays that use it should no longer cause certain textures to load incorrectly (Mario Kart 8, Pokémon Legends Arceus).
- OBS Game Capture should no longer crop the game output incorrectly, flicker randomly, or capture with incorrect gamma.
- oslc: Fix condition in GetSaveDataBackupSetting.
- Fixes a regression introduced in 1.1.69 where Animal Crossing: New Horizons would not boot anymore without a save file. Note that the game still crashes most of the time without one.
- InstEmitMemoryEx: Barrier after write on ordered store.
- No changes expected in games.
- ntc: Implement IEnsureNetworkClockAvailabilityService.
- Needed by Splatoon 2 with Guest Internet Access enabled. The game is now playable with this setting.
- Caching local network info and using an event handler to invalidate as needed.
- Improves slowdown in calendar menu in Fire Emblem: Three Houses.
- Implement S8D24 texture format.
- Fixes starbits interaction in Super Mario Galaxy, now allowing the game to be progressed through.
- Fixes fog/depth of field/depth particles in SuperTuxKart.
- Dynamically increase buffer size when resizing.
- Reduces the boot time (from black screen to Game Freak logo) on Pokémon Brilliant Diamond/Shining Pearl by almost half with PPTC enabled.
- Greatly improves title screen animation and overall performance on Super Mario Galaxy.
- Ui: Add option to show/hide console window (Windows-only).
- Windows users can now toggle the console under Options > Show Log Console.
- Initialize indexed inputs used on next shader stage.
- Fixes another regression introduced in 1.1.61 that would cause shaders to fail to compile on WarioWare: Get It Together! and probably other games using indexed attributes.
- Do not initialize geometry shader passthrough attributes.
- Fixes a regression introduced in 1.1.61 that caused solid black/ transparent characters (again) on Game Builder Garage.
- Implement
GetSaveDataBackupSetting
of OLSC service.- Allows ACNH from 2.0.5 onwards to boot.
- Implement setting to rotate stick axis by 90 degrees.
- Allows the stick to be rotated in all possible orientations (in conjunction with inversion).
- Games that use sideways joycons (Super Mario Party etc.) will be able to take advantage of this.
- Fix GetUserDisableCount NRE.
- Fixes a "NullReferenceException" that could happen when closing the emulator or stopping emulation, reported on Splatoon 2.
- Does NOT fix most instances of emulator crashing when quitting.
- Limit number of events that can be retrieved from GetDisplayVSyncEvent.
- Fixes "WaitSynchronization InvalidHandle" error spam on .hack//G.U. Last Recode, making the game playable with logs enabled.
- KThread: Fix GetPsr mask
- No changes expected in games.
- amadeus: Fix wrong Span usage in CopyHistories.
- Fixes a crash in Mononoke Slashdown, which now goes in-game.
- Fixes a crash in Paper Mario: The Origami King during a cutscene in Shangri-Spa.
- T32: Implement Data Processing (Modified Immediate) instructions.
- No changes expected in games.
- Mod loading from atmosphere SD directories.
- Implements addition of SD card paths into the ModLoader so that standard Atmosphere/hardware directory set up mods can be used semi-seamlessly. You can now right click a game and click "Open Atmosphere Mods Directory" to access the folder.
- Only initialize shader outputs that are actually used on the next stage.
- Fixes models not rendering in Pokémon Legends: Arceus on AMD OpenGL (Windows).
- May improve performance in select games e.g. PLA and Link's Awakening for Intel iGPUs (Mesa).
- A32: Fix ALU immediate instructions.
- No changes expected in games.
- Decoders: Fix instruction lengths for 16-bit branch instructions.
- No changes expected in games.
- Decoder: Exit on trapping instructions, and resume execution at trapping instruction.
- No changes expected in games.
- T32: Implement B, B.cond, BL, BLX.
- Implements remaining thumb CPU instructions. No changes expected in games.
- Preparation for initial Flatpack and FlatHub integration.
- Initial changes required to publish Ryujinx on FlatHub, a Linux app store which is also used by the Steam Deck.
- Implement -p or --profile command line argument.
- Implements a command line argument for specifying which profile to load, overriding the default behavior of loading the most recently used profile. This is useful for people with shared computers, who can now set up 2 (or more) different Ryujinx desktop shortcuts by adding -p and the profile name in shortcut properties > target.
- Update LibHac to v0.16.0.
- Adds support for reading NCAs with compressed sections. Iridium and Gunvolt Chronicles: Luminous Avenger iX 2 can now boot.
- The emulator will now be able to recover from situations where external things mess with extra data files in the save data file system, instead of just erroring.
- T32: Implement ALU (shifted register) instructions.
- No expected changes to emulator functionality.
- Allow textures to have their data partially mapped.
- Fixes Miitopia crashing in the underground maze.
- Fixes crashing in Star Ocean First Departure R.
- Perform unscaled 2d engine copy on CPU if source texture isn't in cache.
- Reduces stuttering and fixes texture problems in A Hat in Time.
- Improves stuttering in UE4 games that use texture streaming, such as Yoshi's Crafted World.
- Fixes the water in Fatal Frame: Maiden of Black Water.
- ARMeilleure: Implement single stepping.
- No expected changes to emulator functionality.
- gui: Fixes the games icon when there is an update.
- Updated games will now also display the updated icon on the games list.
- ARMeilleure: Fix BLX and BXWritePC.
- Ensures PC is appropriately masked in BXWritePC and BLX (reg) uses BXWritePC.
- Collapse AsSpan().Slice(..) calls into AsSpan(..).
- No changes to emulator functionality.
- Add dedicated ServerBase for FileSystem services.
- Improves menu performance in Super Smash Bros Ultimate.
- Reduces stuttering on some button advanced cutscenes in Xenoblade Chronicles: Definitive Edition.
- May improve other instances of stuttering while streaming assets or loading anything.
- PPTC version increment.
- Fixes games getting stuck during boot, right after loading shaders.
- Enable CPU JIT cache invalidation.
- This change will be required in the future to make applications that load code dynamically (NROs, mainly Super Smash Bros Ultimate) or that have self-modifying code (certain Skyline/ARCropolis mods) function properly.
- Prefer texture over textureSize for sampler type.
- Fixes shaders failing to compile on some games, however, there seems to be no visible differences.
- Use BitOperations methods and delete now unused BitUtils methods.
- Replaces BitUtils.CountTrailingZeros/CountLeadingZeros/IsPowerOfTwo with BitOperations methods.
- No changes expected in games.
- Move kernel syscall logs to new trace log level.
- Implement/Stub mnpp:app service and some hid calls.
- Required by SNES v3.0.0 games (NSO collection), however, these are not playable yet.
- Allows Nintendo Switch Sports Online Play Test to boot.
- Decoders: Add IOpCode32HasSetFlags.
- Fixes "Unhandled exception caught: System.InvalidCastException: Specified cast is not valid" error on boot introduced in 1.1.36.
- Added trace log level.
- Adds a "trace" log level in developer logs.
- Change ServiceNv map creation logs to the Debug level.
- Removes quite a bit of unneeded log spam.
- ARMeilleure: Thumb support (all T16 instructions).
- Implements all 16-bit thumb CPU instructions.
- No changes expected in games.
- misc: Update GtkSharp.Dependencies and speed up initial Windows build.
- Fixes flickering tooltips.
- Windows versions will now build faster on GitHub.
- Use ReadOnlySpan compiler optimization for static data.
- No changes expected in games.
- Use a basic cubic interpolation for the audren upsampler.
- Improves audio in The Legend of Zelda: Skyward Sword HD.
- amadeus: Fix PCMFloat datasource command v1.
- Small code correction. No changes expected in games.
- Do not allow render targets not explicitly written by the fragment shader to be modified.
- Fixes cave rendering in Pokémon Legends: Arceus.
- Fixes weird lines in Pokémon Sword/Shield.
- Fixes black water in Paper Mario: The Origami King.
- Fixes blue emblems on ships in Monster Hunter Rise.
- Fixes overbright jellyfish in NEO: The World Ends with You.
- amadeus: Fix limiter correctness.
- Fixes missing audio on Nintendo Switch Sports Online Play Test.
- When copying linear textures, DMA should ignore region X/Y.
- Allows River City Girls Zero to get ingame.
- Adjustmentments to controller deadzone calculation.
- Improves small movements at cardinal directions.
- Removes "8-axis" effect at high deadzone values.
- Use Enum and Delegate.CreateDelegate generic overloads.
- Remove unused EnumExtensions.cs.
- No changes to emulator functionality.
- InstEmitMemory32: Literal loads always have word-aligned PC.
- No changes to emulator functionality.
- Fix missing geometry shader passthrough inputs.
- Fixes a regression introduced in 1.0.6988 that caused solid black/ transparent characters on Game Builder Garage.
- Ship SoundIO library only for the specified runtime.
- Ensures that the SoundIO project gets "RuntimeIdentifiers" property when built as a subproject, so that the correct platform-specific files are provided.
- Add a limit on the number of uses a constant may have.
- Deathsmiles II now works.
- misc: Make PID unsigned long instead of long.
- Code cleanup. No changes in games.
- ARMeilleure: A32: Implement SHSUB8 and UHSUB8.
- Implements missing CPU instructions. No known changes in games.
- Fix headless sdl2 option string.
- Make sure mesa_glthread gets a lowercase string on Linux.
- Fixes a bug in which MESA was provided with an incorrect environment variable controlling backend threading.
- ARMeilleure: A32: Implement SHADD8.
- Implements SHADD8 CPU instruction. No expected changes in games.
- ARMeilleure: OpCodeTable: Add CMN (RsReg).
- Implements missing variant of CMN instruction.
- Try to ensure save data always has a valid owner ID.
- Fixes "ResultFsPermissionDenied (2002-6400)" error that would cause games to close during boot with lots of "ThreadTerminating" errors.
- Fix bug that could cause depth buffer to be missing after clear.
- Fixes a regression introduced in 1.0.7168 that caused models not to render in Sonic Colors: Ultimate.
- Remove Appveyor from Readme and SLN.
- Fix small precision error on CPU reciprocal estimate instructions.
- Fixes some twitching animations in Pokémon Legends: Arceus, for example on the main character's left arm.
- kernel: A bit of refactoring and fix GetThreadContext3 correctness.
- Code cleanup for the kernel. No changes expected in games.
- Add timestamp to 16-byte/4-word semaphore releases.
- Fixes 20fps cap in The Legend of Zelda: Breath of the Wild.
- Fixes Pokémon Legends: Arceus being more pixelated than normal.
- Fix res scale parameters not being updated in vertex shader.
- Pokémon Legends: Arceus no longer breaks graphics at higher resolutions when Gastly is spawned.
- Convert Octal-Mode to Decimal.
- Fixes autoupdater not setting the correct permissions on Linux/Unix. This would sometimes cause the Ryujinx file to lose its "executable" attribute after an autoupdate.
- Fix regression on PR builds version number since new release system.
- Fixes PR builds showing as "dirty" builds.
- Fix calls passing V128 values on Linux.
- Fixes a regression introduced in 1.0.7000 where in some cases, during the pre-allocation stage, the new register operations would not be added to the call operation node. This would cause the register allocator to not keep track of the fixed registers (possibly overwriting the register values), and also to do register allocation for the operands passed on the call (which it should not do).
- Fixes Pokémon Sword/Shield saves becoming corrupted on Linux.
- Fixes a crash when booting Splatoon 2 v5.5.0 on Linux.
- Fixes software memory manager mode not working on Linux.
NOTE: existing saves created on any version after 1.0.7000 are most likely actually corrupted, so you'll need to delete them. Saves created before the bug was introduced (or created on Windows) should be fine.
- amadeus: Fix possible device sink input out of bound.
- Fixes a crash in Death Coming. Game now boots to menus, however, it will still crash when attempting to contact online servers.
- Set _vibrationPermitted to return True.
- Games which respect IHidServer::IsVibrationPermitted should now allow vibration to function, for example, Catherine: Full Body.
- Add support for BC1/2/3 decompression (for 3D textures).
- Fixes garbled text in Tales of Vesperia.
- Fixes blocky explosions in Xenoblade Chronicles 2.
- Fixes rain in Ghosts 'n Goblins Resurrection.
WARNING: This version requires a manual update by redownloading it from https://ryujinx.org/download as a result of AppVeyor takedown of the project.
- Release system was switched to GitHub Release as a result of AppVeyor takedown of the project.