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.)
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.
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.
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.
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.
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.
This fixes https://github.com/Ryubing/Issues/issues/30
* Switch to "Release" build config (PerformanceCheck(); will only be called in Release build config)
* Enable "Trace Logs" in Ryujinx settings
* Double-click a game to launch
* Ryujinx will attempt to open a confirmation dialog box that never opens, causing UI deadlock