Commit Graph
3761 Commits
Author SHA1 Message Date
GreemDev e489e0d19f gdb: Cleanup Debugger.cs
by moving the GDB command handlers and command processor out of the class and into their own
2025-10-17 08:23:54 -05:00
KeatonTheBot f362e33293 12 GiB heap crash workaround
Using resolution mods, heaps past 8 GiB work in some games (like LoZ: TotK) and not in others (like SMP Jamboree). Setting the heap to a hard limit of 8 GiB on the 10 & 12 GiB DRAM options seems to be the safe bet right now until a better solution is found.
2025-10-16 15:38:34 -05:00
GreemDevandCoxxs 1e2fd6f4c2 misc: Update Ryujinx.LibHac
Match the behavior with AMS: https://github.com/Atmosphere-NX/Atmosphere/blob/c8e39a54d257bf9875ac852fc1521f046c968339/libraries/libstratosphere/source/fssystem/fssystem_aes_ctr_counter_extended_storage.cpp#L93

This should fix the error ResultFs.InvalidArgument (2002-6001) in some nca.

Co-authored-by: Coxxs <58-coxxs@users.noreply.git.ryujinx.app>
2025-10-16 13:40:52 -05:00
Coxxs 35a8116ae8 gdb: Do not skip CheckInterrupt when gdb stub is enabled
When GDB stub is enabled, CheckSynchronization is called too frequently because it skips _nativeContext.SetCounter(MinCountForCheck) (called in CheckInterrupt()), causing CheckSynchronization to be constantly called in JIT. This could cause performance issue.

It also skips the call to the KProcess.InterruptHandler, which causes some games to deadlock when GDB stub is enabled.

I'm not sure if this change will cause any side effects, but it seems GDB stub is still working correctly after this change.

This change will not affect regular users.
2025-10-16 11:07:05 -05:00
KeatonTheBot 41b8b6961c Restore original application pool sizes for DRAM selections 2025-10-15 21:52:24 -05:00
LotPandKeatonTheBot 42727fca07 12 GiB heap support
The heap was limited to 6 GiB no matter the memory setting, causing memory configurations above 8 GiB to not actually affect the heap size.

Now when the memory config is set to [10 or] 12 GiB the heap also allocates 12 GiB.

The SetHeapSize SysCall will now allow heap sizes up to 12 GiB (technically slightly less).

Co-authored-by: KeatonTheBot <keaton@ryujinx.app>
2025-10-15 21:49:11 -05:00
Coxxs f5822c16af Flush the error log before exit
Currently, some logs can be missing when a fatal error occurs (especially GuestBrokeExecutionException).

This MR attempts to flush logs to console and file before process exit.
2025-10-13 21:59:20 -05:00
GreemDev 66a5719e10 UI: Move IgnoreControllerApplet to the System config section object 2025-10-12 21:48:26 -05:00
KeatonTheBot cc2fb8f0b6 UI: Fix line breaks in Turbo Mode tooltips 2025-10-12 21:48:26 -05:00
Goodfeat c9c78841b9 feature: add the ability to skip profile select dialog when opening games that use it
the skip behavior is done by passing the user id of the profile you have selected in Options > Manage User Profiles
2025-10-12 21:48:25 -05:00
KeatonTheBot f26bd3d321 UI: Update FluentAvalonia.NoAnim to 2.4.0-build3 2025-10-12 18:31:34 -05:00
Coxxs b28f52387a gdb: Fix the crash that occurs when GDB is connected early
* "Suspend Application on Start" is on
2025-10-11 21:22:40 -05:00
Coxxs 83412689b7 gdb: Add monitor minidump command
This will dump the process information, stack trace, and registers from all threads to both the Ryujinx log and gdb.
2025-10-11 10:44:00 -05:00
LotP 0b5f312b20 Sync thread name on Schedule
After commit 51ca73cb, using a non-blocking socket (e.g. poll(..., timeout=0)) will still result in a blocking socket.

It appears the above commit inverted the behavior.
This merge request fixes the blocking flag: blocking will be set to false when the flag is 0x800.
2025-10-11 10:42:56 -05:00
LotP c0b7452cb5 SDK20 and REV15 support
* Fixed an issue where games would boot loop because of an incorrect HID state.

  * Turns out the SamplingNumber of the atomic input storage doesn't match the SamplingNumber of the input state held by the atomic storage, instead it is exactly double the value in the input state.

* Added new Condition struct to the HID Shared memory and populate it with dummy data to fix the no-controller crash (already merged).

* The audio renderer has been mostly updated to rev15, allowing rev15 games to launch.

  * Biquad filters now use floats.

  * Several structures have been renamed to match the SDK names, making it easier to compare functionality. A few names are still missing and will be changed at a later date.

  * The new commands from rev15 have been added to the CommandType enum, but they are still missing from the code itself.

    * Due to changes in the SDK layout, the time estimation functions are either missing or very well hidden (or Ghidra search functionality is useless). We can't fully implement the new commands until the timing data has been located.

  * A few minor tweaks to the code have been made to more accurately match the SDK.
2025-10-11 10:39:50 -05:00
Judas Drekonym 6ba8ae53f2 Add TitleID sort method
Adds an additional application list sorting method for the TitleID. A
bit of a niche choice for sorting but I think the TID is a relevant
enough piece of metadata that it should be there. (And I personally
would be using it)

- Using existing TitleId constant in ApplicationSort, implying this was
meant to be in the sorting options at some point?
- Reuses the "DlcManagerTableHeadingTitleIdLabel" locale for fulfilling
the need already, might be better to make a unique one for this in the
long run but this codebase is new to me so I wanted to make the changes
as unobtrusive as possible
- Using app.Id for the comparer seems to work fine, not sure if using
something else like IdString would be better?
2025-10-10 12:14:44 -05:00
Evan Husted d3bce3f361 UI: Only show DLC RomFS button under Extract Data when DLCs are available.
Also convert the constructor of DlcSelectViewModel to expect a normal title id and not one already converted to the base ID.
2025-10-09 17:18:50 -05:00
Evan Husted 2471bb8ede UI: Move DLC RomFS dumping under normal RomFS dumping.
Also removed it from DLC manager.
2025-10-09 17:18:50 -05:00
KeatonTheBot c3bfce3378 Update Kenji-NX to 2.0.5 2.0.5 2025-10-06 08:57:12 -05:00
KeatonTheBot 88e8d1309c UI: RPC: Asset images
* Final Fantasy Tactics: The Ivalice Chronicles

* Hades II

* Sonic Racing: CrossWorlds

* Super Mario Galaxy 1 & 2
2025-10-03 10:06:02 -05:00
KeatonTheBot ebeb532099 Fix build error: Replace StartsWithIgnoreCase with standard .NET equivalent 2025-10-02 15:18:35 -05:00
KeatonTheBot c501fe264b Fix push descriptors bugfix logic for Intel Arc on Linux 2025-10-01 15:30:02 -05:00
GreemDev 61d0430006 vulkan: Intel Arc on Linux also has the push descriptors bug. 2025-10-01 14:20:02 -05:00
KeatonTheBot cd477cf744 Ryujinx.csproj: Move PublishTrimmed setting for win-arm64 into existing PropertyGroup 2025-10-01 08:49:24 -05:00
KeatonTheBot 0487b781dc Revert NullReferenceException change in IntervalTree.cs
* Not technically needed because newNode.Parent is the same value as parent
2025-09-30 17:53:09 -05:00
KeatonTheBot 51b32981b6 misc: chore: Fix possible NullReferenceExceptions, InvalidOperationExceptions 2025-09-30 15:05:14 -05:00
KeatonTheBot fa682d406e misc: chore: Merge into pattern 2025-09-24 13:51:15 -05:00
KeatonTheBot 503dea74c2 misc: chore: Remove unnecessary usings 2025-09-24 13:48:36 -05:00
KeatonTheBot 1f979e5c6f misc: chore: Fix object creation 2025-09-24 13:44:00 -05:00
KeatonTheBot 378dc33cca misc: chore: Discard unused parameters 2025-09-24 13:26:50 -05:00
KeatonTheBot 9c37a557dd misc: chore: Merge duplicated 'if' branches 2025-09-24 13:26:50 -05:00
Mcost45 6e5bd0c9f2 Include SL/SR default bindings for single joycons
Single L/R Joycons default to unbound for the SL/SR inputs - so by default you can't progress past 'press L + R to continue' type screens.
But

* ConfigGamepadInputId.SingleLeftTrigger0(L)

* ConfigGamepadInputId.SingleRightTrigger0(L)

* ConfigGamepadInputId.SingleLeftTrigger1(R)

* ConfigGamepadInputId.SingleRightTrigger1(R)

already exist (and I verified these are the inputs triggered by the SL/SR buttons), so my change would default to these instead.
2025-09-23 09:27:59 -05:00
Alula 0f2b11d4d5 feat: resolve real module names in HLE debugger 2025-09-20 11:32:15 -05:00
KeatonTheBot 1abf5b82c5 Fix: Configuration migration for Turbo Mode 2025-09-19 16:28:59 -05:00
KeatonTheBot d751cfa81a UI: Update Svg.Controls.Avalonia group to 11.3.6.2 2025-09-19 08:20:24 -05:00
KeatonTheBot af14fadb2f UI: Update Avalonia to 11.3.6 2025-09-17 09:15:01 -05:00
KeatonTheBot 4fd4e3a4ff Increase # of maximum log files from 4 to 5 2025-09-15 16:21:11 -05:00
KeatonTheBot a1834900be Revert stream loader changes
"add stream based loaders" - Commit c16559f2

"Fix some DLCs crashing due to stream loader change" - Commit a62deb8c
2025-09-14 14:51:46 -05:00
KeatonTheBot fe7a30c747 Revert Android changes
* "Android: NCE support" - Commit cd3221ab

* "Android: Numerous fixes" - Commit 19dd23c2

* "Android: Memory specific switches" - Commit 98b4ff33

* "Android: Remove unmanaged code" - Commit 846b5b6e
2025-09-14 14:51:44 -05:00
KeatonTheBot 3a387309b4 Memory changes part 2 crash fix
* This was an oversight: Two lines were left out when initially cherry-picking from Ryubing
2025-09-12 17:58:00 -05:00
KeatonTheBot 867a92a8bc nuget: bump System group to 9.0.9 2025-09-10 15:41:20 -05:00
Coxxs 45bf443c01 Fix headless mode
Fix the error

`Error setting value to option 'gdb-stub-port': Check if Option or Value attribute values are set properly for the given type.`

https://github.com/commandlineparser/commandline/issues/612
2025-09-10 13:14:07 -05:00
LotP a09568d1b7 Memory changes 2.2.1
Cleans up some leftover comments i forgot to remove.

Potentially fixes 1 more crash.
2025-09-07 13:11:57 -05:00
LotP dae7ae7eaf Memory changes 2.2
A few more internal changes to the RangeList systems.

* No longer using a QuickAccess dictionary.

  * The performance of the dictionary wasn't much faster than just doing binary searches.

  * Using just binary searches allows us to take advantage of span and array returns as they're are faster than linked lists when iterating or copying the overlaps.

Small code optimizations.

Fixes a few leftover crashes.
2025-09-06 12:26:08 -05:00
KeatonTheBot c2f54d0a5c UI: RPC: Hollow Knight Silksong asset image 2025-09-05 08:59:38 -05:00
LotP f4dfdd35b2 hle: Basic event handle implementation for IApplicationFunctions 210
Lets Hollow Knight: Silksong boot.

* remove stub

* Add version comment
2025-09-05 08:59:26 -05:00
GreemDevandKeatonTheBot c56d04a9a9 feature: Turbo Mode
Adds an elapsed tick multiplier feature which speeds up games which are built upon delta time.

More information: https://web.archive.org/web/20240713135029/https://github.com/Ryujinx/Ryujinx/pull/6456

Co-authored-by: KeatonTheBot <keaton@ryujinx.app>
2025-09-04 23:49:32 -05:00
KeatonTheBot 5c6175cebf UI: Fix Match System Time setting not appropriately disabling/enabling System Time options 2025-09-04 23:49:26 -05:00
KeatonTheBot 9addccb50f misc: chore: Replace Gommon functions with standard .NET equivalents (part 3) 2025-09-04 14:28:54 -05:00
KeatonTheBot 17946c78e6 UI: Update Avalonia to 11.3.5 2025-09-04 12:31:51 -05:00