Commit Graph
3915 Commits
Author SHA1 Message Date
Renovate Bot 46308c32e7 Update dependency NUnit to 4.6.1 (#6)
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [NUnit](https://nunit.org/) ([source](https://github.com/nunit/nunit)) | `4.5.1` → `4.6.1` | ![age](https://developer.mend.io/api/mc/badges/age/nuget/NUnit/4.6.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/NUnit/4.5.1/4.6.1?slim=true) |

---

### Release Notes

<details>
<summary>nunit/nunit (NUnit)</summary>

### [`v4.6.1`](https://github.com/nunit/nunit/releases/tag/v4.6.1): NUnit version 4.6.1

See [release notes](https://docs.nunit.org/articles/nunit/release-notes/framework.html#nunit-461---may-18-2026) for details.

### [`v4.6.0`](https://github.com/nunit/nunit/releases/tag/v4.6.0): NUnit 4.6.0

[Compare Source](https://github.com/nunit/nunit/compare/4.5.1...4.6.0)

See [release notes](https://docs.nunit.org/articles/nunit/release-notes/framework.html#nunit-460---may-4-2026) for details.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzguMCIsInVwZGF0ZWRJblZlciI6IjQzLjE3OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: https://git.ryujinx.app/projects/Kenji-NX/pulls/6
2026-05-20 18:43:04 +00:00
Renovate Bot bf09e153f1 Update dependency Microsoft.IdentityModel.JsonWebTokens to 8.18.0 (#5)
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [Microsoft.IdentityModel.JsonWebTokens](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet) | `8.17.0` → `8.18.0` | ![age](https://developer.mend.io/api/mc/badges/age/nuget/Microsoft.IdentityModel.JsonWebTokens/8.18.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Microsoft.IdentityModel.JsonWebTokens/8.17.0/8.18.0?slim=true) |

---

### Release Notes

<details>
<summary>AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet (Microsoft.IdentityModel.JsonWebTokens)</summary>

### [`v8.18.0`](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/HEAD/CHANGELOG.md#8180)

[Compare Source](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/compare/8.17.0...8.18.0)

\====

#### New Features

- Introduced a new interface `IConfigurationEventHandlerContextAware<T>` that provides context to the configuration event handler implementation, allowing it to optionally bypass a cache lookup. See [PR #&#8203;3444](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/3444).
- Added Microsoft.IdentityModel.Dpop — a new package implementing DPoP (Demonstrating Proof-of-Possession) per RFC 9449. Provides both client-side and server-side proof validation with no System.Net.Http dependency. See [PR #&#8203;3443](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/3443).

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzguMCIsInVwZGF0ZWRJblZlciI6IjQzLjE3OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: https://git.ryujinx.app/projects/Kenji-NX/pulls/5
2026-05-20 18:42:52 +00:00
Renovate Bot 0d1eebad31 Update dependency Microsoft.NET.Test.Sdk to 18.5.1 (#4)
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) | `18.5.0` → `18.5.1` | ![age](https://developer.mend.io/api/mc/badges/age/nuget/Microsoft.NET.Test.Sdk/18.5.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Microsoft.NET.Test.Sdk/18.5.0/18.5.1?slim=true) |

---

### Release Notes

<details>
<summary>microsoft/vstest (Microsoft.NET.Test.Sdk)</summary>

### [`v18.5.1`](https://github.com/microsoft/vstest/releases/tag/v18.5.1)

#### What's Changed

- Fix System.Collections.Immutable binding mismatch in Common.dll (rel/18.5) by [@&#8203;nohwnd](https://github.com/nohwnd) in [#&#8203;15720](https://github.com/microsoft/vstest/pull/15720)
- Port verify-binding-redirects.ps1 to rel/18.5 by [@&#8203;nohwnd](https://github.com/nohwnd) in [#&#8203;15719](https://github.com/microsoft/vstest/pull/15719)
- Bump to 18.5.1 by [@&#8203;nohwnd](https://github.com/nohwnd) in [#&#8203;15721](https://github.com/microsoft/vstest/pull/15721)

**Full Changelog**: <https://github.com/microsoft/vstest/compare/v18.5.0...v18.5.1>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzguMCIsInVwZGF0ZWRJblZlciI6IjQzLjE3OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: https://git.ryujinx.app/projects/Kenji-NX/pulls/4
2026-05-20 18:28:36 +00:00
Renovate Bot b1b260ed17 Update avalonia monorepo to 11.3.16 (#3)
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [Avalonia](https://avaloniaui.net/?utm_source=nuget&utm_medium=referral&utm_content=project_homepage_link) ([source](https://github.com/AvaloniaUI/Avalonia)) | `11.3.14` → `11.3.16` | ![age](https://developer.mend.io/api/mc/badges/age/nuget/Avalonia/11.3.16?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Avalonia/11.3.14/11.3.16?slim=true) |
| [Avalonia.Desktop](https://avaloniaui.net/?utm_source=nuget&utm_medium=referral&utm_content=project_homepage_link) ([source](https://github.com/AvaloniaUI/Avalonia)) | `11.3.14` → `11.3.16` | ![age](https://developer.mend.io/api/mc/badges/age/nuget/Avalonia.Desktop/11.3.16?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Avalonia.Desktop/11.3.14/11.3.16?slim=true) |
| [Avalonia.Diagnostics](https://avaloniaui.net/?utm_source=nuget&utm_medium=referral&utm_content=project_homepage_link) ([source](https://github.com/AvaloniaUI/Avalonia)) | `11.3.14` → `11.3.16` | ![age](https://developer.mend.io/api/mc/badges/age/nuget/Avalonia.Diagnostics/11.3.16?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Avalonia.Diagnostics/11.3.14/11.3.16?slim=true) |
| [Avalonia.Markup.Xaml.Loader](https://avaloniaui.net/?utm_source=nuget&utm_medium=referral&utm_content=project_homepage_link) ([source](https://github.com/AvaloniaUI/Avalonia)) | `11.3.14` → `11.3.16` | ![age](https://developer.mend.io/api/mc/badges/age/nuget/Avalonia.Markup.Xaml.Loader/11.3.16?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Avalonia.Markup.Xaml.Loader/11.3.14/11.3.16?slim=true) |

---

### Release Notes

<details>
<summary>AvaloniaUI/Avalonia (Avalonia)</summary>

### [`v11.3.16`](https://github.com/AvaloniaUI/Avalonia/releases/tag/11.3.16)

[Compare Source](https://github.com/AvaloniaUI/Avalonia/compare/11.3.15...11.3.16)

##### What's Changed

- Core – Align Touch/Pen capture semantics with Mouse by [@&#8203;miloush](https://github.com/miloush) in [#&#8203;21363](https://github.com/AvaloniaUI/Avalonia/pull/21363)

**Full Changelog**: <https://github.com/AvaloniaUI/Avalonia/compare/11.3.15...11.3.16>

### [`v11.3.15`](https://github.com/AvaloniaUI/Avalonia/releases/tag/11.3.15)

[Compare Source](https://github.com/AvaloniaUI/Avalonia/compare/11.3.14...11.3.15)

##### What's Changed

##### Security

- VNC – Bump SharpCompress from 0.24.0 to 0.48.0 by [@&#8203;kekekeks](https://github.com/kekekeks)

**Full Changelog**: <https://github.com/AvaloniaUI/Avalonia/compare/11.3.14...11.3.15>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzguMCIsInVwZGF0ZWRJblZlciI6IjQzLjE3OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: https://git.ryujinx.app/projects/Kenji-NX/pulls/3
2026-05-20 18:27:08 +00:00
Renovate BotandKeatonTheBot a57756f447 Configure Renovate (#1)
Welcome to [Renovate](https://github.com/renovatebot/renovate)! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.

📚 See our [Reading List](https://docs.renovatebot.com/reading-list/) for relevant documentation you may be interested in reading.

🔡 Do you want to change how Renovate upgrades your dependencies? Add your custom config to `.forgejo/renovate.json` in this branch. Renovate will update the Pull Request description the next time it runs.

---
### Detected Package Files

 * `Directory.Packages.props` (nuget)
 * `global.json` (nuget)
 * `src/ARMeilleure/ARMeilleure.csproj` (nuget)
 * `src/Ryujinx.Audio.Backends.OpenAL/Ryujinx.Audio.Backends.OpenAL.csproj` (nuget)
 * `src/Ryujinx.Common/Ryujinx.Common.csproj` (nuget)
 * `src/Ryujinx.Graphics.OpenGL/Ryujinx.Graphics.OpenGL.csproj` (nuget)
 * `src/Ryujinx.Graphics.Vulkan/Ryujinx.Graphics.Vulkan.csproj` (nuget)
 * `src/Ryujinx.HLE.Generators/Ryujinx.HLE.Generators.csproj` (nuget)
 * `src/Ryujinx.HLE/Ryujinx.HLE.csproj` (nuget)
 * `src/Ryujinx.Horizon.Generators/Ryujinx.Horizon.Generators.csproj` (nuget)
 * `src/Ryujinx.Horizon.Kernel.Generators/Ryujinx.Horizon.Kernel.Generators.csproj` (nuget)
 * `src/Ryujinx.Horizon/Ryujinx.Horizon.csproj` (nuget)
 * `src/Ryujinx.Input/Ryujinx.Input.csproj` (nuget)
 * `src/Ryujinx.SDL3.Common/Ryujinx.SDL3.Common.csproj` (nuget)
 * `src/Ryujinx.ShaderTools/Ryujinx.ShaderTools.csproj` (nuget)
 * `src/Ryujinx.Tests.Memory/Ryujinx.Tests.Memory.csproj` (nuget)
 * `src/Ryujinx.Tests.Unicorn/Ryujinx.Tests.Unicorn.csproj` (nuget)
 * `src/Ryujinx.Tests/Ryujinx.Tests.csproj` (nuget)
 * `src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj` (nuget)
 * `src/Ryujinx.UI.LocaleGenerator/Ryujinx.UI.LocaleGenerator.csproj` (nuget)
 * `src/Ryujinx/Ryujinx.csproj` (nuget)

### Configuration Summary

Based on the default config's presets, Renovate will:

  - Start dependency updates only once this onboarding PR is merged
  - Enable Renovate Dependency Dashboard creation.
  - Use semantic commit type `fix` for dependencies and `chore` for all others if semantic commits are in use.
  - Ignore `node_modules`, `bower_components`, `vendor` and various test/tests (except for nuget) directories.
  - Group known monorepo packages together.
  - Use curated list of recommended non-monorepo package groupings.
  - Show only the Age and Confidence Merge Confidence badges for pull requests.
  - Apply crowd-sourced package replacement rules.
  - Apply crowd-sourced workarounds for known problems with packages.
  - Ensure that every dependency pinned by digest and sourced from Forgejo contains a link to the commit-to-commit diff
  - Ensure that every dependency pinned by digest and sourced from GitHub.com and Github enterprise contains a link to the commit-to-commit diff
  - Enable Renovate configuration migration PRs when needed.
  - Require Dependency Dashboard approval for `major` updates.

---

### What to Expect

With your current configuration, Renovate will create 9 Pull Requests:

<details>
<summary>Update avalonia monorepo to 11.3.16</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/avalonia-monorepo`
  - Merge into: `master`
  - Upgrade [Avalonia](https://github.com/AvaloniaUI/Avalonia) to `11.3.16`
  - Upgrade [Avalonia.Desktop](https://github.com/AvaloniaUI/Avalonia) to `11.3.16`
  - Upgrade [Avalonia.Diagnostics](https://github.com/AvaloniaUI/Avalonia) to `11.3.16`
  - Upgrade [Avalonia.Markup.Xaml.Loader](https://github.com/AvaloniaUI/Avalonia) to `11.3.16`

</details>

<details>
<summary>Update dependency Microsoft.NET.Test.Sdk to 18.5.1</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/vstest-monorepo`
  - Merge into: `master`
  - Upgrade [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) to `18.5.1`

</details>

<details>
<summary>Update dependency Microsoft.IdentityModel.JsonWebTokens to 8.18.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/dotnet-azure-ad-identitymodel-extensions-monorepo`
  - Merge into: `master`
  - Upgrade [Microsoft.IdentityModel.JsonWebTokens](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet) to `8.18.0`

</details>

<details>
<summary>Update dependency NUnit to 4.6.1</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/nunit-4.x`
  - Merge into: `master`
  - Upgrade [NUnit](https://github.com/nunit/nunit) to `4.6.1`

</details>

<details>
<summary>Update dotnet monorepo</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/dotnet-monorepo`
  - Merge into: `master`
  - Upgrade [Microsoft.CodeAnalysis.Analyzers](https://github.com/dotnet/roslyn) to `3.11.0`
  - Upgrade [Microsoft.CodeAnalysis.CSharp](https://github.com/dotnet/roslyn) to `4.14.0`
  - Upgrade [System.IO.Hashing](https://github.com/dotnet/dotnet) to `10.0.8`
  - Upgrade [dotnet-sdk](https://github.com/dotnet/sdk) to `10.0.300`

</details>

<details>
<summary>Update avalonia monorepo to v12</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/major-avalonia-monorepo`
  - Merge into: `master`
  - Upgrade [Avalonia](https://github.com/AvaloniaUI/Avalonia) to `12.0.3`
  - Upgrade [Avalonia.Desktop](https://github.com/AvaloniaUI/Avalonia) to `12.0.3`
  - Upgrade [Avalonia.Markup.Xaml.Loader](https://github.com/AvaloniaUI/Avalonia) to `12.0.3`

</details>

<details>
<summary>Update dependency Avalonia.Controls.DataGrid to v12</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/avalonia.controls.datagrid-12.x`
  - Merge into: `master`
  - Upgrade [Avalonia.Controls.DataGrid](https://github.com/AvaloniaUI/Avalonia.Controls.DataGrid) to `12.0.0`

</details>

<details>
<summary>Update dotnet monorepo to v5</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/major-dotnet-monorepo`
  - Merge into: `master`
  - Upgrade [Microsoft.CodeAnalysis.Analyzers](https://github.com/dotnet/roslyn) to `5.3.0`
  - Upgrade [Microsoft.CodeAnalysis.CSharp](https://github.com/dotnet/roslyn) to `5.3.0`

</details>

<details>
<summary>Update Svg.Controls to v12</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/major-svg.controls`
  - Merge into: `master`
  - Upgrade [Svg.Controls.Avalonia](https://github.com/wieslawsoltes/Svg.Skia) to `12.0.0.9`
  - Upgrade [Svg.Controls.Skia.Avalonia](https://github.com/wieslawsoltes/Svg.Skia) to `12.0.0.9`

</details>

🚸 PR creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or overwhelm the project. See [docs for `prHourlyLimit`](https://docs.renovatebot.com/configuration-options/#prhourlylimit) for details.

---

 Got questions? Check out Renovate's [Docs](https://docs.renovatebot.com/), particularly the Getting Started section.
If you need any further assistance then you can also [request help here](https://github.com/renovatebot/renovate/discussions).

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).

<!--renovate-config-hash:b90d3633c498120cf097b76d90e40f530a1210d84c00ad2dc3491f01a81cbdd8-->

Co-authored-by: KeatonTheBot <keaton@ryujinx.app>
Reviewed-on: https://git.ryujinx.app/projects/Kenji-NX/pulls/1
2026-05-20 16:58:32 +00:00
be405de436 Fix crash on Mac and Android caused by a buffer validation error fix
Fixes a bug introduced in e88fd327. The problematic commit did its work directly on the updater's own arrays, calling Auto.Get() on each entry as it went, and nulling entries out along the way. The problem is that Get() can call back into Commit (via ClearMirrors -> Rebind), and when it did, that reentrant Commit would read from the same arrays the outer call was still in the middle of processing, hit one of the entries the outer had already nulled, and throw an NullReferenceException. The fix is to have Commit start by copying everything it needs into local variables and resetting _count to zero, so a reentrant call sees a clean updater and operates on its own data. The outer call then writes its snapshot back into the native arrays just before recording the Vulkan bind.

Co-authored-by: AsperTheDog <guillerman0000@gmail.com>
Co-authored-by: Max <randomgirlisweird@gmail.com>
Co-authored-by: Babib3l <gab.chevanne@gmail.com>
2026-05-19 12:18:56 -05:00
AsperTheDogandAsperTheDog e88fd3273d Fix Vulkan validation errors
This PR fixes several validation errors caused by invalid Vulkan usage. These validation errors often end up invoking Undefined Behavior on the driver side, which can lead to artifacts or crashes which are driver specific and otherwise incredibly hard to track. I don't think it should have any impact on performance, but it would be good to test it with as many games as possible (maybe a bug in a game was fixed?).

Each commit fixes an error. I added to each a description with the validation error that was fixed and a small explanation on what was causing it and how I fixed it.

Co-authored-by: AsperTheDog <guillerman0000@gmail.com>
2026-05-15 17:22:21 -05:00
AsperTheDogandAsperTheDog 79f55b12bf Change non-uniform shader extension to be more conservative
The previous fix for Tomodachi Life (#91) included the extension to all shaders, independently on if it was needed or not. This PR fixes that by lazily adding the extension only when it is actually needed.

This change should not be noticed by anyone, but it avoids having to modify shaders that do not perform any type of dynamic indexing, which apparently is something some modders care about.

Co-authored-by: AsperTheDog <guillerman0000@gmail.com>
2026-05-15 17:22:21 -05:00
Max 0bc515e4ff [HLE] Stub ILibrarySelfAccessor:ExitAndReturn (10) 2026-05-15 17:22:21 -05:00
AsperTheDogandAsperTheDog 541fa63330 Add shader non-uniform indexing support
This PR marks ALL texture indexes as nonuniform to fix an issue with the paths in Tomodachi Life: Living the Dream on AMD cards. It should have a negligible impact on performance (and it should not have an impact at all on NVIDIA cards!)

It's caused by what is called 'implicit non-uniform sampler array indexing'. The idea is basically that some GPUs optimize texture lookups from indexed texture arrays, by assuming that you are never going to index different textures within a single workgroup. What this causes is that visual glitch where a subgroup is tasked with rendering a block of the screen, and in the boundaries some cores are indexing the wrong texture.

Co-authored-by: AsperTheDog <guillerman0000@gmail.com>
2026-05-14 08:52:04 -05:00
cookieso 55aded3a05 Input: Implement HD Rumble for compatible Nin devices
This PR addresses [this issue](https://github.com/Ryubing/Issues/issues/231) and implements HD Rumble for compatible Nin devices.
## New Features
- Add the option for Gamepads to implement HD Rumble
- Add the HD rumble capability to SDL3Gamepad and SDL3JoyCon when they meet certain requirements
2026-05-14 08:52:04 -05:00
Max 61e0aba325 Check if the Device is rendering before waiting on it
Fixes an issue where there were missed references and an ``OperationCancelled`` exception when exiting an application.
2026-05-14 08:49:51 -05:00
yell0wsuitandyell0wsuit 23fb4924e3 [HLE] Match hardware screenshot buffer size behavior for captures
## Description

~~Fixes a fatal CLR crash when `caps` screenshot saving receives an input buffer larger than `0x384000`.~~

~~Resolves a crash in Tomodachi Life: Living the Dream where saving the pictures to the system's album crashes with 0x80131506.~~

Follow up to #18. This PR adjusts the validation and copy behavior to better match real hardware, and adds logging to make invalid screenshot buffer cases easier to diagnose.

Real hardware accepts screenshot buffers with a size greater than or equal to `0x384000`, but only `0x384000` bytes are needed for the 1280x720 RGBA image.

This changes screenshot saving to:

- reject buffers smaller than `0x384000`
- accept buffers equal to or larger than `0x384000`
- copy only the first `0x384000` bytes into the 1280x720 bitmap

## Testing

Tested with a real Switch NRO using `capssuSaveScreenShotEx0`, `capssuSaveScreenShotEx1`, and `capssuSaveScreenShotEx2`.

Observed hardware behavior:

```text
0x384000     => OK
0x384000 - 1 => NullInputBuffer
0x384000 + 1 => OK
0x3C0000     => OK // Tomo life picture size
```

Co-authored-by: yell0wsuit <5692900+yell0wsuit@users.noreply.github.com>
2026-05-11 14:30:04 -05:00
Babib3l 8fcc539ed9 Fix Windows fullscreen gap when toggling from maximized
This PR aims to Fix the Windows fullscreen gap when toggling from maximized state by using canonical Win32 fullscreen approach. When entering fullscreen, the window style is saved and replaced with WS_POPUP | WS_VISIBLE to remove all window chrome (title bar, borders), then SetWindowPos sizes the window to cover the full screen with SWP_FRAMECHANGED to force Win32 to recalculate the frame. On exit, the original window style is restored. This eliminates the few-pixel gap at the top that occurred because Avalonia's WindowState = FullScreen transition from a maximized state retained the title bar non-client area, leaving visible space at the top of the screen (Fullscreen resolution would be 1920 x 1072p on a 1080p monitor, it now correctly renders at 1920 x 1080p)
2026-05-11 14:30:04 -05:00
yell0wsuitandyell0wsuit 51e4323a73 [HLE] Fix StoreData layout and implement IDatabaseService.Append
- Fixes `StoreData` layout/update handling so `UpdateLatest` returns the stored Mii data correctly.

- Implements `IDatabaseService.Append` (https://switchbrew.org/wiki/Shared_Database_services#IDatabaseService)

Also adds regression tests for `UpdateLatest` and `Append`.

(Might) fix Mario Kart 8 Deluxe crashing on first boot due to failed Mii verification check (due to custom Mii from emulator), and potentially Tomodachi Life: Living the Dream for the "Import Mii from system" option.

Co-authored-by: yell0wsuit <5692900+yell0wsuit@users.noreply.github.com>
2026-05-11 11:09:52 -05:00
Max fcd55edf93 [HLE] Renamed INotificationServicesForSystem and implemented a few commands and stubs
Should allow Ring Fit and other games that rely heavily on the notification system to get in-game (?), needs testing.
2026-05-11 11:09:02 -05:00
Frosch 44872f45e0 fix: gamepads have the same name
When connecting multiple controllers of the same model, the first device's name ends with (0), the second with (1), the third with (1), the fourth with (1), and so on. To ensure these names are truly unique, GetUniqueGamepadName is now called recursively.
2026-05-11 10:45:54 -05:00
Max 1950b34e39 [HLE] Implemented ILibraryAppletSelfAccessor:1
Needed for Tomodachi Life: Living the Dream (?)

based on [this](https://www.reddit.com/r/Ryubing/comments/1t4lfc9/comment/ok4e7tu/)
2026-05-11 10:45:19 -05:00
LotP 4aa8e249f1 fix nacp language buffer 2026-05-04 17:13:31 -05:00
KeatonTheBot 3c13bdb4af Revert "added skia native assets for windows, macOS and switched to no-depend for linux"
This reverts commit af6dd5b64c.
2026-05-04 02:27:43 -05:00
KeatonTheBot 7dec9a2f09 UI: RPC: Asset images 2026-05-04 01:50:21 -05:00
Max af6dd5b64c added skia native assets for windows, macOS and switched to no-depend for linux
im not really sure why these were missing, but theyre here now :woopernod:
2026-05-04 01:50:00 -05:00
Max c6fba938bb CPU: Increased base JIT cache size
@MaxLastBreath found that The Legend of Zelda: Tears of the Kingdom experiences inconsistent crashing with a limited JIT cache size. Increasing the cache size seems to help with this, and increasing it shouldn't degrade performance for other titles.

@LotP plans to look this over later, but for now, this should suffice as a fix for affected users.
2026-05-04 01:50:00 -05:00
Max 4b4fd560ed UI: LoadGuestApplication asynchronous cancellation
Fixed LoadGuestApplication hanging when cancelled.
Since startup procedure has technically changed, we should consider testing this with a variety of game formats to ensure regressions do not occur.
2026-05-04 01:48:31 -05:00
KeatonTheBot 7f99e32a0a Update Ryujinx.SDL3-CS to 2026.501.0
- Fixes upstream SDL issue: Crash on Windows when a controller is connected
2026-05-01 19:52:38 -05:00
KeatonTheBot 4b8c74be10 Update Ryujinx.SDL3-CS to 2026.430.0
- Should work better with Switch 2 Pro Controllers
2026-04-30 00:58:07 -05:00
KeatonTheBot 2af1bc1808 Update NuGet packages
- Avalonia to 11.3.14

- FluentAvalonia to 2.5.1

- Gommon to 2.8.1.2

- Microsoft.NET.Test.Sdk to 1.8.5.0

- SDL3-CS to 2026.426.0

- System.IO.Hashing to 10.0.7
2026-04-27 00:49:28 -05:00
KeatonTheBot 1d19b318c1 infra: Remove PDB files from Release builds
- Use DebugType=none in Directory.Build.props

- Remove files included in NuGet packages
2026-04-22 10:04:19 -05:00
KeatonTheBot 36767d7fce misc: Replace IntPtr/UIntPtr with nint/nuint 2026-04-21 16:26:47 -05:00
Xam 20a9ecaebf HLE: CaptureManager: SaveScreenShot: properly handle screenshot image data
no way this was working before, and if it did, just pure luck, unsafe blind copy of bytes as is and zero checks.

i only tested tomodachi, but should fix all games that were crashing on saving screenshots

the crash was happening because the screenshot buffer was bigger than the bitmap buffer, so marshall.copy() was raising an unhandhled expection crashing the emu.

on top of this, because the data was just copied as is, the result image was garbled.
2026-04-21 16:25:33 -05:00
LotP 77c947eb88 Fix Dual Joy-Con driver and InputView 2026-04-21 16:25:33 -05:00
KeatonTheBotandMaki 251b65771a Update SDL2 to SDL3
- Fix: Crash when connecting a JoyCon

- Fix: Make controller GUIDs match old SDL2 GUIDs

- Fix: Detect face button layout for gamepads

Co-authored-by: Maki <77-maki@users.noreply.git.ryujinx.app>
2026-04-14 22:13:05 -05:00
KeatonTheBot 7aa27b2ca5 Use Forgejo badges 2026-04-14 00:18:57 -05:00
KeatonTheBot 3a479a437d Update GitLab references to Forgejo 2026-04-13 23:49:54 -05:00
sh0inx 5359ab77e1 Update BiquadFilterEffectParameterTests.cs 2026-04-13 23:47:56 -05:00
KeatonTheBot 3d5682375e Add Color Space Passthrough to Headless config and MainWindow 2026-04-10 02:11:36 -05:00
KeatonTheBot bc777e1968 Avalonia: Restore Color Space Passthrough for Windows/Linux
Limiting to macOS is no longer needed. Windows and Linux can also utilize this.

This reverts commit f61b7818c3.
2026-04-09 17:25:04 -05:00
LotP e729014cfa Accurate Service Names
- Services now use their actual names when creating processes instead of the generic "Service".

- Services now use their names encapsulated in curly brackets for threads, e.g. {HID}, instead of the default "HLE.OsThread", making it easier to see what is actually happening behind the scenes. Client threads should use <> and host threads should use {}.

- Fixed a bug where initiating services would create extra unneeded servers.

This is part 1 of a series of service and Horizon changes i'm working on. More will follow at a later date.
2026-04-05 16:53:25 -05:00
KeatonTheBot 39b7242ef7 Update NuGet packages
* Avalonia to 11.3.13

* CommunityToolkit.Mvvm to 8.4.2

* Microsoft.IdentityModel.JsonWebTokens to 8.17.0
2026-04-01 16:24:15 -05:00
KeatonTheBot d55c0a702b Vulkan: Enable VK_EXT_memory_priority for Pageable Memory to work properly 2026-03-31 22:47:20 -05:00
KeatonTheBot f39b53982a VulkanInitialization: Move declarations closer to usage 2026-03-31 22:44:33 -05:00
KeatonTheBot 46a57538c6 Restore Ryujinx.LibHac to 0.21.0-alpha.128 2026-03-24 16:21:38 -05:00
KeatonTheBot 9b93b6fe18 Update NuGet packages
* Svg.Controls.Avalonia group to 11.3.9.5

* DynamicData to 9.4.31

* Humanizer to 3.0.10

* NUnit to 4.5.1

* NUnit3TestAdapter to 6.2.0

* Ryujinx.LibHac to 0.21.0-alpha.133

* System.IO.Hashing to 10.0.5
2026-03-24 15:21:36 -05:00
KeatonTheBot d207d43768 Optimize texture cache code 2026-03-24 15:21:33 -05:00
KeatonTheBot d7f90f9f1f Tweak feedback loop restriction logic 2026-03-18 18:23:37 -05:00
sh0inx 1b714ab1aa [HLE] Added "null" check for isAtRest
If an npad device was checking for if the device was at rest, we called `GetSixAxisSensorLifo()` -- if the npad was of type `None`, it triggered the `NotImplementedException` in that method because `None` doesn't have a gyroscope, and therefore no data attached to it.
2026-03-15 16:16:14 -05:00
Coxxs a6af70baa1 HLE: Implement CreateContextForSystem
Implement nn::ssl::sf::ISslServiceForSystem -> CreateContextForSystem (100)

Ryujinx implements both ISslService and ISslServiceForSystem in one class so we can just return new ISslContext.

Also fixed the incorrect parameter reading order. (CreateContextForSystem basically has same params as CreateContext)
2026-03-14 18:25:36 -05:00
KeatonTheBot 8c9cdfe9ce Clean up texture cache code for low-VRAM GPUs 2026-03-14 18:06:09 -05:00
KeatonTheBotandStossy11 5b3a620bb0 Vulkan: Add A8B8G8R8 texture format
Co-authored-by: Stossy11 <stossy11@stossy11.com>
2026-03-04 16:43:46 -06:00
KeatonTheBot d977208b19 Update NuGet packages
* Avalonia to 11.3.12

* Gommon to 2.8.1.1

* Microsoft.IdentityModel.JsonWebTokens to 8.16.0

* Microsoft.NET.Test.Sdk to 18.3.0

* NUnit to 4.5.0
2026-02-26 17:42:27 -06:00