Commit Graph
159 Commits
Author SHA1 Message Date
KeatonTheBot 620666909f Suppress CA1416 warnings, correct argument kind in IFileSystem 2025-06-20 16:25:22 -05:00
KeatonTheBot fda90239bc Android fixes and features
* Jit cache eviction (fixes out of memory errors in some games)

* Low power PPTC

* Fix 'unknown' games displayed when using game folder with subfolders

* Turn off NCE and PPTC by default
2025-06-02 21:47:55 -05:00
MrKev cdd4557343 Fix JWT Claims and Socket Flag Handling to Improve Just Dance® Server Connection 2025-05-31 02:59:09 -05:00
GreemDev 3657e55c70 infra: Update to Ryujinx.LibHac 0.20.0.
This time it's pulled in via GitLab package registry.
2025-05-26 21:02:36 -05:00
KeatonTheBot e8e4c5aa61 Android changes 2025-05-16 23:42:48 -05:00
KeatonTheBot 95ac0a7a51 Assign DRAM IDs and Hardware Types to 10GiB-12GiB sizes
* Fix incorrect Hardware Type for 8GiB-12GiB DRAM sizes
2025-05-06 19:09:05 -05:00
LotP1 df322e6d57 Fix loading multiple mods with partially matching names
* Fix all mods always active
2025-04-23 14:38:48 -05:00
KeatonTheBot 5b03721db6 misc: chore: Merge duplicated switch sections 2025-04-12 12:27:26 -05:00
KeatonTheBot 3c644a712d misc: chore: Fix possible System.NullReferenceExceptions 2025-04-12 12:27:15 -05:00
KeatonTheBot 06ea0c32d3 misc: chore: Remove unnecessary usings 2025-04-11 21:56:23 -05:00
RyllGanda17 198ee01437 Implement GetCacheStorageMax (#5)
Fixes this problem
`|W| HLE.OsThread.47 KernelIpc CallCmifMethod: Missing service Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.IApplicationFunctions: 29 ignored`

Allows add-on content from Just Dance 2023/2024/2025 to be loaded.
2025-04-10 23:03:16 -05:00
GreemDev 6ca49f912e HLE: Implement missing service calls needed for Xenoblade Chronicles X DE
(cherry picked from commit d4bf7d3c2b870e0ff6677dc50dbcbea04396a4f9)
2025-03-24 11:14:55 -05:00
KeatonTheBot 8c49b7080b Update logo/icon, README, and LICENSE 2025-03-20 23:45:09 -05:00
KeatonTheBot efd5a104b6 Revert "misc: chore: Remove redundant code"
This reverts commit 05a88ccc94.
2025-03-15 20:00:22 -05:00
KeatonTheBot 05a88ccc94 misc: chore: Remove redundant code 2025-03-11 16:45:41 -05:00
KeatonTheBot 340ec79e9f misc: chore: Use collection expressions (part 2) 2025-03-10 21:32:01 -05:00
KeatonTheBot e2973a875a misc: chore: Use collection expressions 2025-03-06 20:46:29 -06:00
Evan Husted 5e77ca25c8 HLE: LDN: Reduce NAT timeout from 5 seconds to 2.5 2025-02-16 18:04:55 -06:00
Vudjun e3258ab026 Gracefully handle errors in socket creation
In all other calls, exceptions are handled within the ManagedSocket
class, this can't easily be done here as the exception is thrown from
the constructor, so the exception is handled in ISocket and the correct
error is passed to the application.

This should fix #660
2025-02-16 17:32:36 -06:00
Vudjun fba6cb68c9 Add logging in socket implementation
Adds logging to most Socket calls to help with debugging network
issues.

Shouldn't affect any functionality. There's a small chance it could spam
the log in some games.
2025-02-16 17:32:08 -06:00
FluffyOMC a763f7bfd0 JIT Cache Regions + HLE SoNoSigpipe BSD socket mapping
Instead of one big 2048MB JIT Cache that'd crash the emulator when maxed
out, we now have it where we add 256MB JIT Cache regions when needed,
helping reduce allocated memory where games don't use the JIT cache for
it, and helping bigger games that DO need JIT cache bigger than 2048MB!

![image](https://github.com/user-attachments/assets/ff17dc48-6028-4377-8c73-746ab21ab83b)
(SSBU goes past the 2048MB JIT Cache limit that would normally crash
Ryujinx ^)

Also I added a BSD socket that Baba is You's networking for downloading
custom levels uses.
2025-02-12 16:41:39 -06:00
LotP1 da0c6c57f9 PPTC Profiles
Added functionality that allows ExeFS mods to compile to their own PPTC
Profile and therefore store PTC data between sessions.
The feature calculates the hash of the currently loaded ExeFS mods and
stores the PPTC data in a profile that matches said hash, so you can
have multiple ExeFS loadouts without causing issues. This includes
different versions of the same mod as their hashes will be different.
Using this PR should be seamless as the JIT Sparse PR already laid the
groundwork for PPTC Profiles and this PR just allows ExeFS mods to load
and store their own profiles besides the `default` profile.

❗❗❗ **WARNING!** ❗❗❗
**This will update your PPTC profile version, which means the
PPTC profile will be invalidated if you try to run a PR/Build/Branch
that does not include this change!**
**This is only relevant for the default PPTC Profile, as any other profiles do not exist to older versions!**
2025-02-05 01:30:37 -06:00
Evan Husted 01cd935cc3 UI: Scanning for mods on DLC content 2025-02-04 23:03:23 -06:00
Josh 727ac79ebc Increase NAT discovery timeout to 5000ms
1000ms was too fast on some slower networks. It would lead to an early
cancellation before device could be found.
2025-01-27 21:44:26 -06:00
LotP1 57ec605fc8 remove notice for unusual core counts 2025-01-17 09:29:17 -06:00
Evan Husted 94ba8de683 HLE: Stub IHidServer SetGestureOutputRanges
Lets "Donkey Kong Country Returns HD" get into main gameplay.
2025-01-16 11:44:17 -06:00
KeatonTheBot b5a8ba573e Add 10 GiB DRAM option 2025-01-11 18:36:57 -06:00
LotP1 54ed9fcab7 cores rework
This PR changes the core count to be defined in the device instead of
being a const value.
This is mostly a change for future features I want to implement and
should not impact any functionality.
The console will now log the range of cores requested from the
application, and for now, if the requested range is not 0 to 2 (the 3
cores used for application emulation), it will give an error message
which tells the user to contact me on discord. I'm doing this because
I'm interested in finding applications/games that don't use 3 cores and
the error will be removed in the future once I've gotten enough data.
2025-01-11 17:11:13 -06:00
KeatonTheBot baba352b38 misc: chore: remove unnecessary usings (again, .NET 9) 2024-12-26 02:43:15 -06:00
Marco Carvalho 55d88d08d4 Avoid zero-length array allocations 2024-12-26 01:12:31 -06:00
Evan Husted 78093a1d0c HLE: rename AmiiboDecrypter to AmiiboDecryptor 2024-12-20 18:53:33 -06:00
Evan Husted 87067b5b32 UI: Only show Amiibo bin scan menu item if the key file exists 2024-12-20 18:52:10 -06:00
Jacobwasbeast 9b5151dddb Added Support for 532-Byte Amiibo BIN Files
Added functionality to load 532-byte Amiibo BIN files, commonly used in
Tagmo and similar tools. These files were missing the following pages.
*    133 (85h) PWD
*    134 (86h) PACK RFUI
These pages can be added as null bytes if not present. The system seems
to function correctly without them.
2024-12-20 18:48:18 -06:00
Jacobwasbeast 78400132c0 Adds the ability to read and write to amiibo bin files
This introduces the ability to read and write game data and model
information from an Amiibo dump file (BIN format). Note that this
functionality requires the presence of a key_retail.bin file. For the
option to appear and function in the UI, ensure that the key_retail.bin
file is located in the <RyujinxData>/system folder.
2024-12-20 18:46:51 -06:00
Marco Carvalho 8547285aba Migrate to .NET 9 2024-12-19 21:18:58 -06:00
KeatonTheBot 254a060c70 misc: chore: Remove unnecessary usings 2024-12-12 01:08:47 -06:00
Vudjun 7bd5a61b65 RyuLDN implementation
These changes allow players to matchmake for local wireless using a LDN
server. The network implementation originates from Berry's public TCP
RyuLDN fork. Logo and unrelated changes have been removed.

Additionally displays LDN game status in the game selection window when
RyuLDN is enabled.

Functionality is only enabled while network mode is set to "RyuLDN" in
the settings.
2024-12-12 00:36:59 -06:00
Luke Warner 7fd7661b56 Stub Ldn.Lp2p.ISfService: 776 (DestroyGroup)
This prevents a crash in Mario Kart Live: Home Circuit that would occur
after exiting the kart pairing screen.
2024-12-12 00:36:50 -06:00
Evan Husted fd6c2740ef chore: applets: Cleanup redundant ReadStruct implementations & provide a default implementation for IApplet#GetResult. 2024-12-12 00:36:47 -06:00
Jacobwasbeast 8604df0f1c Add the Cabinet Applet
This adds the missing Cabinet Applet, which allows for formatting
Amiibos and changing their names.
2024-12-12 00:36:38 -06:00
Luke Warner 57d51d872b Implement and stub services required for Mario Kart Live: Home Circuit
These changes allow Mario Kart Live: Home Circuit (v2.0.0) to boot into
menus. Kart functionality has not been implemented and will not work.

Version 1.0.0 is currently unsupported due to unimplemented ARM
registers. I plan on addressing this issue at a later date.

### Here is a list of the implemented and stubbed services in this PR:
#### Implemented:
Ldn.Lp2p.IServiceCreator: 0 (CreateNetworkService)
Ldn.Lp2p.IServiceCreator: 8 (CreateNetworkServiceMonitor)
Ldn.Lp2p.ISfService: 0 (Initialize)
Ldn.Lp2p.ISfServiceMonitor: 0 (Initialize)
Ldn.Lp2p.ISfServiceMonitor: 256 (AttachNetworkInterfaceStateChangeEvent)
Ldn.Lp2p.ISfServiceMonitor: 328 (AttachJoinEvent)
#### Stubbed:
Ldn.Lp2p.ISfService: 768 (CreateGroup)
Ldn.Lp2p.ISfService: 1536 (SendToOtherGroup)
Ldn.Lp2p.ISfService: 1544 (RecvFromOtherGroup)
Ldn.Lp2p.ISfServiceMonitor: 288 (GetGroupInfo)
Ldn.Lp2p.ISfServiceMonitor: 296 (GetGroupInfo2)
Ldn.Lp2p.ISfServiceMonitor: 312 (GetIpConfig)
2024-12-01 18:11:34 -06:00
LotP1andEvan Husted b8afbc858f JIT Sparse Function Table
More up to date build of the JIT Sparse PR for continued development.
JIT Sparse Function Table was originally developed by riperiperi for the
original Ryujinx project, and decreased the amount of layers in the
Function Table structure, to decrease lookup times at the cost of
slightly higher RAM usage.
This PR rebalances the JIT Sparse Function Table to be a bit more RAM
intensive, but faster in workloads where the JIT Function Table is a
bottleneck. Faster RAM will see a bigger impact and slower RAM (DDR3 and
potentially slow DDR4) will see a slight performance decrease.
This PR also implements a base for a PPTC profile system that could
allow for PPTC with ExeFS mods enabled in the future.
This PR also potentially fixes a strange issue where Avalonia would time
out in some rare instances, e.g. when running ExeFS mods with TotK and a
strange controller configuration.

---------

Co-authored-by: Evan Husted <gr33m11@gmail.com>
2024-11-26 22:34:00 -06:00
Luke Warner 7979f7664e Implement IAllSystemAppletProxiesService: 350 (OpenSystemApplicationProxy)
Implements IAllSystemAppletProxiesService: 350
(OpenSystemApplicationProxy)

This fixes a crash that occurs when launching an NSP forwarder generated
by Nro2Nsp.
2024-11-19 23:34:12 -06:00
Jacobwasbeast 7284f4aa67 Adds the ability to read a amiibo's nickname from the VirtualAmiiboFile
This feature adds a way to change the Amiibo's nickname inside Smash and
other places where it's used, so it’s not always "Ryujinx." However, I
did not add a GUI or create the Cabinet applet that would allow users to
change this. So you will have to go to system/amiibo and find your
amiibo id to change it.
2024-11-10 17:57:12 -06:00
Jacobwasbeast 675c43f586 Add Dummy Applet to Replace NotImplementedException
Currently, in Ryujinx, if an app attempts to open an unimplemented
applet, it crashes. This change adds a dummy applet to send a dummy
response instead of crashing and logs the applet.
2024-11-10 17:56:38 -06:00
jcm 5d24fd119d Add custom refresh rate mode to VSync option 2024-11-09 15:13:48 -06:00
KeatonTheBot 04865d2710 Fix application pool size for 12 GiB DRAM 2024-11-03 17:56:44 -06:00
MaxLastBreath 0ff6e3b7b1 Textures : Increase the amount of VRAM Cache available for Textures based on selected DRAM. (#36) 2024-11-01 20:36:35 -05:00
KeatonTheBot e3624422aa Update logo/icon 2024-10-31 17:14:31 -05:00
gdkchan 6340c4feb4 Re-merge PRs 7311 (1.1.1392) and 7312 (1.1.1396)
Add support for sampler sRGB disable (#7312)

Change image format view handling to allow view incompatible formats (#7311)

* Allow creating texture aliases on texture pool

* Delete old image format override code

* New format incompatible alias

* Missing bounds check

* GetForBinding now takes FormatInfo

* Make FormatInfo struct more compact
2024-10-29 14:23:40 -05:00