Fix crash caused by reading incorrect size of Splitter data.
In most games the crash doesnt happen if you have nn::audio::AudioRendererParameter VoiceCount aligned to 2, as that causes splitter data to be aligned by 0x10, but otherwise, the alignment by 0x10 done in SplitterContext->Update may exceed SplitterSize (which was previously labeled as Unknown24), causing a crash.
(Crash can be replicated by doing AudioRendererParameter.voiceCount++; in any SDK 20.X game that works, which doesn't cause crash on actual hardware)
(This patch is from a friend who makes mods.)
Adds Ryujinx.Audio.Backends.Apple, which is a AudioToolbox based audio backend for macOS (and by extension iOS). Also added in MeloNX.
* Expose AudioToolkit in UI
Co-authored-by: GreemDev <greemdev@ryujinx.app>
In some games using newer SDK (e.g. Splatoon 3 11.0.0), when `nn::prepo::PlayReport::SetOptInCheckEnabled` is set to False, `nn::prepo::PlayReport::Save` will call `IPrepoService:10106` (SaveReport) and `IPrepoService:10107` (SaveReportWithUser) instead of 10104 (SaveReportOld) and 10105 (SaveReportWithUserOld).
A new param (optInCheckEnabled) is added in 10106/10107 compare to 10104/10105.
This should fix missing service error for Splatoon 3 11.0.0 and other games using newer SDK and has set `nn::prepo::PlayReport::SetOptInCheckEnabled` to False.
Fixes the actually insane amount of log spam in games that check for this, such as Luigi's Mansion 3.
Values in HidDevices.NpadDevices.isAtRest may need to be tuned to a better range for resting detection. I originally set them to 0, and my controller rests at definitely NOT 0.
Will need to be revisited when implementing functionality for the global SixAxisActive bool, IHidServer.StartSixAxisTracking, and IHidServer.StopSixAxisTracking.
* Avalonia to 11.3.11, Svg.Controls.Avalonia group to 11.3.9.2
* Gommon to 2.8.0.4
* NUnit3TestAdapter to 6.1.0
* Ryujinx.LibHac to 0.21.0-alpha.128
* System group to 10.0.2
Core dumps are disabled by default on Linux, but this prevents access to the file picker due to security hardening. To work around this, core dumps are selectively enabled and disabled around the file picker tasks.
Use [ObservableProperty] attribute, which greatly reduces or eliminates boilerplate code needed to generate observable properties
Co-authored-by: GreemDev <greemdev@ryujinx.app>
This add the following commands to Gdb Stub:
monitor get mappings
monitor get mappings <address>
monitor get mapping <address>
This is the first time arguments are used in Rcmd, so FindRcmdDelegate is changed to CallRcmdDelegate, to allow it to handle arguments cleanly.
The reply format mimics the same command on Atmosphere.
The forced pagination of monitor get mappings in Atmosphere is not added, as I think it's not needed here.
if a buffer is inherited, ignore it and remove it from the list.
fixes a crash when a buffer is inherited during a sync and the containing ranges have been modified to not fit in the old buffer.
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).