Commit graph

3815 commits

Author SHA1 Message Date
LotP
2ba33ec2ef Fix kaddressarbiter crash
Fixes a crash when trying to access the thread count on a not (yet) existing list of threads.
2025-12-06 20:29:22 -06:00
LotP
e404954f88 Memory Changes 3.2
Fixes a few crashes:
- fixes a crash related to waking threads (priorities were wrong).
- fixes a crash from reusing the SetRenderTargets texture array (left-over data causing issues).
- fixes a mistake and an oversight in the buffer system.
  - buffers were getting updated wrong causing bad data to be stored or some times cut.
  - modified ranges would extend past their old buffers, crashing on syncs. Old buffers are now skipped as the new buffers already sync instead.

Introduces pooling in a few more places to increase memory efficiency.

simplified RangeList item logic.
- removed RangeItem by making all the range objects use the I(NonOverlapping)Range interface.
- BufferCache class no longer locks its RangeList, as the list is only ever accessed synchronously.

Small change to how keyboard snapshots are stored.

Increase ThreadedRenderer SpanPool size to fit slightly more data (4MB -> 8MB).
2025-12-06 19:41:14 -06:00
LotP
6b383873e8 Update BiquadFilterEffectParameter2.cs
Fixes audio issues in Metroid Prime 4 and other games
2025-12-05 08:13:33 -06:00
KeatonTheBot
32d1653af9 Fix heap size for kernel check and DRAM selections 2025-12-04 20:17:52 -06:00
Princess Piplup
298e2cdefd Fix SaveCurrentScreenshot
This fixes SaveCurrentScreenshot so it correctly saves the screenshot into the screenshot folder, it's no longer a stub

I was going to add the capture button so all games worked but tbh I only care for spongebob

games tested
Pokemon Z-A: https://files.raychu.xyz/u/1FaUGV.png
Pokemon Violet: https://files.raychu.xyz/u/6swfVS.png
Pokemon Violet: https://files.raychu.xyz/u/JaBBX2.png
Spongebob The Cosmic Shake: https://files.raychu.xyz/u/8z5X2e.png
2025-12-04 20:17:51 -06:00
Alula
5a53d36992 Disable coredumps by default on Linux 2025-12-04 20:04:34 -06:00
KeatonTheBot
8c99b90926 nuget: bump packages
* Humanizer to 3.0.1

* Microsoft.IdentityModel.JsonWebTokensto 8.15.0

* Microsoft.NET.Test.Sdk to 18.0.1
2025-11-21 11:48:38 -06:00
KeatonTheBot
e287c9fc85 Null-conditional assignments, continued 2025-11-19 20:33:06 -06:00
GreemDev
e349ef72fb Use the new C# 14 null propagation setter 2025-11-19 20:09:08 -06:00
GreemDev
b7c13715f1 Add .NET Runtime version in About window under Ryujinx version. 2025-11-17 09:14:04 -06:00
KeatonTheBot
139e18a8e1 feature: .NET 10 2025-11-17 09:14:04 -06:00
Coxxs
58a76a0b9f Stub IWriterForApplication: 0 (CreateContextRegistrar)
Fix games that uses ContextRegistrar (e.g. After the socket blocking issue is fixed, Splatoon 3 and other ModuleSystem games will call this when booting, to create a context for the error, after a connection attempt to the server failed.)
2025-11-17 08:42:37 -06:00
KeatonTheBot
6292192cc0 misc: chore: Remove unnecessary usings 2025-11-11 17:40:33 -06:00
LotP
a926a31133 Memory changes 3.1
Fixes audio bug causing static noise to play in certain games.

Fixes inputs being dropped after a certain amount of playtime.
2025-11-11 16:05:45 -06:00
GreemDev
17b7eadb91 UI: App Library: automatically remove nonexistent autoload/game dirs from the configuration upon load. 2025-11-10 20:34:39 -06:00
KeatonTheBot
61a783e10a Add 43:18 aspect ratio (for 3440x1440 [WQHD], 6880×2880 [UW6K+] users) 2025-11-08 16:49:46 -06:00
GreemDev
9b8517caf3 Fix socket closing on shutdown
Previously, sockets were only ever closed when the game specifically requested it.

Thanks @comex on GitHub for the patch submitted via the [Ryubing] issues page.

Co-Authored-By: comex <47517+comex@users.noreply.github.com>
2025-11-05 08:21:54 -06:00
KeatonTheBot
457f62d773 nuget: bump packages
* Gommon to 2.8.0.1

* Microsoft.NET.Test.Sdk to 18.0.0

* Newtonsoft.Json to 13.0.4 (reduces trim warnings by 56)

* Ryujinx.LibHac to 0.21.0-alpha.126

* System group to 9.0.10

* UnicornEngine.Unicorn to 2.1.4-a40db6c
2025-11-02 20:42:23 -06:00
KeatonTheBot
a6c0eabf49 misc: Tweak NullReferenceException fixes 2025-10-31 01:04:00 -05:00
LotP
e3ee28605d Memory changes 3
General memory improvements to decrease GC pressure and frequency.

Pool big arrays and objects that are created and deleted often.

Skip data copies when they aren't needed.

Inline flag checks to skip unneeded allocations.

From my testing the performance is about the same, but the GC frequency is much lower and collection is faster causing less and smaller spikes.
2025-10-30 23:25:51 -05:00
KeatonTheBot
2c50fbcc1f misc: Use nint/nuint instead of IntPtr/UIntPtr 2025-10-29 14:54:07 -05:00
GreemDev
90cb9d42db hle: Throw a ServiceNotImplementedException instead of ArgumentException if any number arguments provided to ILibraryAppletAccessor are nonzero 2025-10-29 14:52:15 -05:00
LotP
1a3b407839 ILibraryAppletAccessor:90 tweak
Minor update to logic to make our work easier in the future.
2025-10-29 14:52:13 -05:00
sh0inx
46a0783293 HLE: Stub ILibraryAppletAccessor Unknown90
This lets games such as The Legend of Zelda: Tears of the Kingdom (v1.4.2) and other SDK 20+ games successfully circumvent a crash when calling an applet.

Example: No controller connected on boot -> calls Controller Applet -> no stub = crash.
2025-10-27 13:11:33 -05:00
KeatonTheBot
82ae055fe5 Code cleanup: Audio effects fix and audio object pooling
Commit cdbe5686
2025-10-26 17:33:51 -05:00
LotP
f98af9e175 gpu allocation optimizations
ObjectPool now uses ConcurrentBag instead if ConcurrentStack, as it has a smaller memory footprint.

Fix compiler warnings related to Audio Command Pools.

Switch gpu command initialization to use pointers, that way skipping the allocation of the command which is unnecessary.

Skip byte array allocation in Ioctl2/3 if it isn't needed (if the source data is all continuous we don't need to copy it to make it continuous).
2025-10-26 16:46:55 -05:00
LotP
cdbe568620 audio effects fix and audio object pooling
Revert and reimplement Float BiquadFilterEffect support, fixes infinite load issues in a few games like Splatoon 3.

Fix incorrect string check with the new thread naming system.

Implement object pooling for all Audio Commands and a few other audio related objects and use a growing error list for updating wave buffers instead of always allocating space for 8 errors.
2025-10-25 23:49:52 -05:00
KeatonTheBot
86f47b8333 Revert cleanup change in KScheduler.cs
From commit a7af26bc.
2025-10-25 17:57:31 -05:00
Coxxs
2993dba583 Fix application list loads slowly when RyuLDN is enabled
Currently, application list will not show until ApplicationLibrary_LdnGameDataReceived calls ViewModel.RefreshView();, forcing a refresh. This makes application list load slowly when RyuLDN is enabled.
2025-10-24 14:30:38 -05:00
GreemDev
e720e4a87b gdb: YACC (yet another cleanup commit) 2025-10-24 09:47:08 -05:00
Coxxs
f30d832847 Skip directories (and do not RecurseSubdirectories) when finding the icon fallback
Newer applications have a folder for ounce in the Control nca. This fixes Ryujinx trying to open a folder as a file, causing another exception, when trying to find the icon fallback.
2025-10-24 09:47:08 -05:00
Coxxs
afa1ab95c2 Move ProcessInfo and Minidump to HleProcessDebugger
This allows developers to call them in the code for debugging.
2025-10-22 16:35:09 -05:00
GreemDev
52b6fcf1a4 gdb: some more cleanups 2025-10-22 15:25:33 -05:00
GreemDev
35449846d9 gdb: Make waiting for a process to start more forgiving (200ms per poll 10x -> 500ms) 2025-10-22 08:10:25 -05:00
Coxxs
5d68312b54 gdb: Abort if unable to start GDB server
When users enable GDB stub, we assume they intend to use it (it slows down the game a lot). If the server cannot start, we abort to save users' time troubleshooting why their GDB client can not connect.
2025-10-22 08:10:24 -05:00
GreemDev
b8aaadac5f gdb: Catch SocketException from TcpListener#Start 2025-10-22 08:09:48 -05:00
KeatonTheBot
a369b246a3 Fix Ori 2 not launching (revert Possible NullReferenceException change) 2025-10-21 16:43:03 -05:00
KeatonTheBot
d96e93ef0d Missed application pool for 4 GiB DRAM 2025-10-21 13:29:57 -05:00
GreemDev
0bfd2ad3ef gpu: tweak: Do not log missing Votevtg implementation. 2025-10-21 13:25:32 -05:00
Coxxs
df36c23652 gdb: fix IsProcess32Bit throws exception if called too early
For some reason, LLDB will call commands that use IsProcess32Bit earlier than GDB.
2025-10-20 21:53:26 -05:00
GreemDev
843a7113d1 chore: fix in-code typos 2025-10-20 21:53:26 -05:00
GreemDev
2d420ee561 gdb: dynamic rcmd system & more cleanups 2025-10-20 21:53:26 -05:00
Coxxs
b958044e4e gdb: Support qAttached; Add missing ReplyOK when detach 2025-10-20 21:34:19 -05:00
Coxxs
d659bec27a Implement IUserServiceCreator: 1 (CreateClientProcessMonitor)
This should fix nn::ldn::Initialize in games that use SDK 18 or higher.
2025-10-20 20:57:30 -05:00
Coxxs
107df58666 Update LoadIdTokenCache for 19.0.0+
This should stub nn::account::LoadNetworkServiceAccountIdTokenCache for games that use SDK 19 or higher.
2025-10-20 20:57:06 -05:00
KeatonTheBot
280461dc78 Update NUnit to 4.4.0
* NUnit3TestAdapter to 5.2.0

* Rename Assert class to ClassicAssert to align with NUnit 4.x changes
2025-10-19 23:01:06 -05:00
KeatonTheBot
1724149443 misc: chore: Remove unnecessary usings 2025-10-19 17:48:37 -05:00
Xam
b44e2a87fd Fix duplicate volume and mode change events in AppHost 2025-10-19 17:47:12 -05:00
Xam
b1f767b2d5 Input: AvaloniaMouseDriver: fix native touch inputs 2025-10-19 17:46:22 -05:00
Xam
ec9713b111 Horizon: Audio: HwopusIpcServer: fix random crashes regression in Pokemon Quest 2025-10-19 17:45:43 -05:00