aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-01-24Implement SQSHL (immediate) CPU instruction (#6155)1.1.1125gdkchan
* Implement SQSHL (immediate) CPU instruction * Fix test
2024-01-24Vulkan: Enumerate Query Pool properly (#6167)1.1.1124riperiperi
Turns out that ElementAt for Queue<T> runs the default implementation as it doesn't implement IList, which enumerates elements of the queue up to the given index. This code was creating `count` enumerators and iterating way more queue items than it needed to at higher counts. The solution is just to use one enumerator and break out of the loop when we get the count that we need. 3.5% of backend time was being spent _just_ enumerating at the usual spot in SMO.
2024-01-24Use unix timestamps on GetFileTimeStampRaw (#6169)1.1.1123gdkchan
2024-01-22Fix architecture preference for MacOS game shortcuts (#6145)1.1.1122Alex0007
* Fix architecture preference for MacOS game shortcuts * Detect arch and then pass it to script Co-authored-by: jcm <john.moody@coloradocollege.edu> * Remove old script write call in `CreateShortcutMacos` * Turn launch script into EmbeddedResource * Added final newline --------- Co-authored-by: jcm <john.moody@coloradocollege.edu>
2024-01-22Fix missing data for new copy dependency textures with mismatching size (#6161)1.1.1121gdkchan
2024-01-22Add a separate device memory manager (#6153)1.1.1120gdkchan
* Add a separate device memory manager * Still need this * Device writes are always tracked * Device writes are always tracked (2) * Rename more instances of gmm to mm
2024-01-22Input: Improve controller identification (#6029)1.1.1119riperiperi
* Input: Improve controller identification Controllers were identified before by a combination of their _global_ index in the list of controllers and their GUID. The problem is, disconnecting and reconnecting a controller can change its global index; the controller can appear at the end. This would give it another ID, and the controller would need to be reconfigured. This happened to me a lot with a switch pro controller and a USB game controller, it was essentially random which appeared first. Now, it consistently detects them. This PR changes the controller identification to be a combination of an index of controllers with the same GUID (generally 0), and its GUID. It also reworks managing the list of controllers to properly consider instance IDs. This also changes the NpadManager to attempt to reuse old controllers when refreshing input configuration, which can prevent input from going dead for seconds whenever a controller connects or disconnects (and the switch pro controller just entirely dying). Testing with different controller types, OS and Avalonia is welcome. Remember that the target is connecting a ton of controllers, and pulling/reconnecting them. * Remove double empty line
2024-01-21Fix integer overflow on downsample surround to stereo (#6160)1.1.1118gdkchan
2024-01-20Implement a new JIT for Arm devices (#6057)1.1.1117gdkchan
* Implement a new JIT for Arm devices * Auto-format * Make a lot of Assembler members read-only * More read-only * Fix more warnings * ObjectDisposedException.ThrowIf * New JIT cache for platforms that enforce W^X, currently unused * Remove unused using * Fix assert * Pass memory manager type around * Safe memory manager mode support + other improvements * Actual safe memory manager mode masking support * PR feedback
2024-01-20Vulkan: Use templates for descriptor updates (#6014)1.1.1116riperiperi
* WIP: Descriptor template update * Make configurable * Wording * Simplify template creation * Whitespace * UTF-8 whatever * Leave only templated path, better template updater
2024-01-20Support portable mode using the macOS app bundle. (#6147)1.1.1115Steveice10
* Support portable mode using the macOS app bundle. * Apply suggestion Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> --------- Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
2024-01-18Change shader cache init wait method (#6131)1.1.1114gdkchan
* Change shader cache init wait method * Make field readonly
2024-01-18Move most of signal handling to Ryujinx.Cpu project (#6128)1.1.1113gdkchan
* Move most of signal handling to Ryujinx.Cpu project * Format whitespace * Remove unused member * Format whitespace * This does not need to be public anymore
2024-01-16Vulkan: Cache delegate for EndRenderPass (#6132)1.1.1111riperiperi
This prevents a small allocation each time this method is called. This is a top 3 SOH allocation during gameplay in most games, and eliminating it is pretty free.
2024-01-14Fix vertex buffer size when switching between inline and state draw ↵1.1.1110gdkchan
parameters (#6101) * Fix vertex buffer size when switching between inline and state draw parameters * Format whitespace
2024-01-13Revert Apple hypervisor force ordered memory change (#6068)1.1.1109gdkchan
2024-01-13Fix Amiibo regression and some minor code improvements (#6107)1.1.1108TSRBerry
* Remove redundant code and fix small issues * Log amiibo exceptions * Add more checks when getting Amiibo data * Fall back to online data if local file is inaccessible * Make dotnet format happy
2024-01-13Switch to `Microsoft.IdentityModel.JsonWebTokens` (#6108)1.1.1107Isaac Marovitz
* Switch to `Microsoft.IdentityModel.JsonWebTokens` * Formatting
2024-01-13Ava UI: RTL Language Support (#5619)1.1.1106Isaac Marovitz
* Add Hebrew locale files to ItemGroups * Align all windows RTL for testing This should be controlled with a binding that selects the appropriate layout based on current language * Update FlowDirection as Locale changes * Fix Settings NavigationViewItem FlowDirection * Fix remaining text * Fix input menu directionality * Fix RTL not rendering * Fix rebase errors
2024-01-13Ava UI: Better Controller Applet (#5756)1.1.1105Isaac Marovitz
* Start work on better Controller Applet * Don’t require title * UI improvements * Border around TBD area * Formatting * Better SVGs * Add missing margin * Use Locale * Rename function * Make buttons ourselves * Make the buttons do shit * Formatting * Adjust SVGs * Fix Open Settings Window * Make field readonly * Final tweaks * Update src/Ryujinx.Ava/UI/Applet/AvaHostUiHandler.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update src/Ryujinx.Ava/UI/Applet/ControllerAppletDialog.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update src/Ryujinx.Ava/UI/Applet/ControllerAppletDialog.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Move icons to Ava project * Reorder arguments * Try to focus Settings Window * Fix icons Project shenangians * Add ContentDialogHelper.ShowWindowAsync method * Fix closed SettingsWindow reference in MainWindow * Fix SettingsWindow dialog * Suggestion --------- Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
2024-01-04Fix PPTC version string for firmware titles (#6071)1.1.1104gdkchan
2024-01-04Add support for PermissionLocked attribute added on firmware 17.0.0 (#6072)1.1.1103gdkchan
* Update MemoryState enum and add new flags * Add support for new PermissionLocked attribute added on firmware 17.0.0 * Format whitespace
2023-12-28Local Amiibo.json should be used if connection failed (#3681)1.1.1102AxesP
* Local Amiibo.json should be used if connection failed Currently Ryujinx is not loading any Amiibo if connection fails, even if the Amiibo.json exists. This fix will use the local file and show a Dialog if connection fails. * using local Amiibo.json & fixed Amiibo.json date comparison Using local Amiibo.json when connection fails and comparison without milliseconds for LastModified that comes from https://amiibo.ryujinx.org/ and the local one (The JSON file has milliseconds on it, those will cause an error when comparing the date from the header because the header one doesn't has milliseconds on it). Both changes made for Avalonia UI. * Fixed date comparison Same date comparison fix, but made for normal UI (Not for AvaloniaUI). This error can be prevented if the file in https://amiibo.ryujinx.org/ did not have the date with milliseconds. * Securely trying to get a list of Amiibo (For normal UI) * Securely trying to get a list of Amiibo (Change for AvaloniaUI) * Date comparison reverted * Apply suggestions from code review * Use fallback amiibo.json if remote file is not valid (Normal UI) * Use fallback amiibo.json if remote file is not valid (Avalonia UI) * Code styles corrected. * Code styles corrected in AmiiboWindowViewModel. * Readded Ryujinx.Common.Logging using. * Fixed using order. --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
2023-12-25Ava UI: Fix crash when clicking on a cheat's name (#5860)1.1.1101Isaac Marovitz
* Fix crash * Remove nullable * Hide BuildId for child nodes * Fix warning * Fix charset
2023-12-11Ava UI: Fix temporary volume not being set after unmute (#5833)1.1.1099rmg-x
2023-12-04Implement support for multi-range buffers using Vulkan sparse mappings (#5427)1.1.1098gdkchan
* Pass MultiRange to BufferManager * Implement support for multi-range buffers using Vulkan sparse mappings * Use multi-range for remaining buffers, delete old methods * Assume that more buffers are contiguous * Dispose multi-range buffers after they are removed from the list * Properly init BufferBounds for constant and storage buffers * Do not try reading zero bytes data from an unmapped address on the shader cache + PR feedback * Fix misaligned sparse buffer offsets * Null check can be simplified * PR feedback
2023-12-04ApplicationLibrary: Skip invalid symlinks (#6004)1.1.1097TSRBerry
2023-12-04Improve indication of emulation being paused by the User (#5836)1.1.1096gnisman
* Improve indication of emulation being paused by the User * Use localised for Paused * Backup original title - PR comments fix * Add common helper method to assemble App title
2023-12-04editorconfig: Set default encoding to UTF-8 (#5793)1.1.1095TSRBerry
* editorconfig: Add default charset * Change file encoding from UTF-8-BOM to UTF-8
2023-11-30HLE: Add OS-specific precise sleep methods to reduce spinwaiting (#5948)1.1.1094riperiperi
* feat: add nanosleep for linux and macos * Add Windows 0.5ms sleep - Imprecise waits for longer waits with clock alignment - 1/4 the spin time on vsync timer * Remove old experiment * Fix event leak * Tweaking for MacOS * Linux tweaks, nanosleep vsync improvement * Fix overbias * Cleanup * Fix realignment * Add some docs and some cleanup NanosleepPool needs more, Nanosleep has some benchmark code that needs removed. * Rename "Microsleep" to "PreciseSleep" Might have been confused with "microseconds", which no measurement is performed in. * Remove nanosleep measurement * Remove unused debug logging * Nanosleep Pool Documentation * More cleanup * Whitespace * Formatting * Address Feedback * Allow SleepUntilTimePoint to take EventWaitHandle * Remove `_chrono` stopwatch in SurfaceFlinger * Move spinwaiting logic to PreciseSleepHelper Technically, these achieve different things, but having them here makes them easier to reuse or tune.
2023-11-23Extend bindless elimination to see through shuffle (#5958)1.1.1093gdkchan
* Extend bindless elimination to see through shuffle * Shader cache version bump
2023-11-19Enable copy dependency between RGBA8 and RGBA32 formats (#5943)1.1.1092gdkchan
* Enable copy dependency between RGBA8 and RGBA32 formats * Take packed flag into account for texture formats * Account for widths not being a multiple of each other * Don't try to alias depth textures as color, fix log condition * PR feedback
2023-11-19Extend bindless elimination to see through Phis with the same results (#5957)1.1.1091gdkchan
* Extend bindless elimination to see through Phis with the same results * Shader cache version bump
2023-11-18misc: Default to Vulkan if available or running on macOS (#5913)1.1.1090MutantAura
* Addition of default backend check. Vulkan is preferred if available or macOS. * import ordering format fix * Update src/Ryujinx/Program.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * remove redundant load types --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2023-11-16Fix JitCache.Unmap called with the same address freeing memory in use (#5937)1.1.1089gdkchan
2023-11-16Fix macOS Path (#5941)1.1.1088Isaac Marovitz
2023-11-15Fix missing texture flush for draw then DMA copy sequence without render ↵1.1.1087gdkchan
target change (#5933) * Unbind render targets before DMA copy * Move DirtyAction to TextureGroupHandle * Fix lost copy dependency bug * XML doc
2023-11-15chore: Update OpenTK to 4.8.1 (#5912)1.1.1086Mary Guillemard
OpenTK.OpenAL was renamed to OpenTK.Audio.OpenAL. Signed-off-by: Mary Guillemard <mary@mary.zone>
2023-11-15Migrate to .NET 8 (#5887)1.1.1084Zoltan Csizmadia
* Change TargetFramework to net8.0 * Disable info messages * Fix warings * Disable additional analyzer messages * Fix typo * Add whitespace * Fix ref vs in warnings * Use explicit [In] on array parameters * No need to guard Remove with Contains * Use 'ArgumentOutOfRangeException.ThrowIf...' instead of explicitly throwing a new exception instance * Bump .NET SDK version * Enable JsonSerializerIsReflectionEnabledByDefault * Use 8.0.100 GA release * Bump System package versions --------- Co-authored-by: Zoltan Csizmadia <Zoltan.Csizmadia@vericast.com>
2023-11-14Disable DMA GPU copy for block linear to linear copies (#5927)1.1.1083gdkchan
* Disable DMA GPU copy for block linear to linear copies * Simplify check * PR feedback
2023-11-14Work around issue apparently caused by 5909 (#5926)1.1.1082gdkchan
2023-11-13Do not set modified flag again if texture was not modified (#5909)1.1.1080gdkchan
* Do not set modified flag again if texture was not modified * Formatting * Fix copy dep regression
2023-11-11Revert "Add support for multi game XCIs (#5638)" (#5914)1.1.1079gdkchan
This reverts commit 5c3cfb84c09b0566da677425915afa0b2d76da55.
2023-11-11Add support for multi game XCIs (#5638)1.1.1076TSRBerry
* Add default values to ApplicationData directly * Refactor application loading It should now be possible to load multi game XCIs. Included updates won't be detected for now. Opening a game from the command line currently only opens the first one. * Only include program NCAs where at least one tuple item is not null * Get application data by title id and add programIndex check back * Refactor application loading again and remove duplicate code * Actually use patch ncas for updates * Fix number of applications found with multi game xcis * Don't load bundled updates from multi game xcis * Change ApplicationData.TitleId type to ulong & Add TitleIdString property * Use cnmt files and ContentCollection to load programs * Ava: Add updates and DLCs from gamecarts * Get the cnmt file from its NCA * Ava: Identify bundled updates in updater window * Fix the (hopefully) last few bugs * Add idOffset parameter to GetNcaByType * Handle missing file for dlc.json * Ava: Shorten error message for invalid files * Gtk: Add additional string for bundled updates in TitleUpdateWindow * Hopefully fix DLC issues * Apply formatting * Finally fix DLC issues * Adjust property names and fileSize field * Read the correct update file * Fix wrong casing for application id strings * Rename TitleId to ApplicationId * Address review comments * Fix formatting issues * Apply suggestions from code review Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Gracefully fail when loading pfs for update and dlc window * Fix applications with multiple programs * Fix DLCWindow crash on GTK * Fix some GUI issues * Remove IsXci again --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2023-11-11Create Desktop Shortcut fixes (#5852)1.1.1075NitroTears
* remove duplicate basePath arg, add --fullscreen arg * Changing FriendlyName to set "Ryujinx" text * Fix GetArgsString using the base path * Change desktop path to the Applications folder when creating shortcut on Mac Co-authored-by: Nicko Anastassiu <134955950+nickoanastassiu@users.noreply.github.com> * Move Create Shortcut button to top of context menu --------- Co-authored-by: TSR Berry <20988865+TSRBerry@users.noreply.github.com> Co-authored-by: Nicko Anastassiu <134955950+nickoanastassiu@users.noreply.github.com>
2023-11-11Add accelerator keys for Options and Help (#5884)1.1.1074Isaac Marovitz
2023-11-11UI: Change default hide cursor mode to OnIdle (#5906)1.1.1073jcm
Co-authored-by: jcm <butt@butts.com>
2023-11-07Force all exclusive memory accesses to be ordered on AppleHv (#5898)1.1.1072gdkchan
* Implement reprotect method on virtual memory manager (currently stubbed) * Force all exclusive memory accesses to be ordered on AppleHv * Format whitespace * Fix test build * Fix comment copy/paste * Fix wrong bit for isLoad * Update src/Ryujinx.Cpu/AppleHv/HvMemoryManager.cs Co-authored-by: riperiperi <rhy3756547@hotmail.com> --------- Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2023-11-06Overhaul of string formatting/parsing/sorting logic for TimeSpans, ↵1.1.1071SamusAranX
DateTimes, and file sizes (#4956) * Fixed formatting/parsing issues with ApplicationData properties TimePlayed, LastPlayed, and FileSize Replaced double-based TimePlayed property with TimeSpan?-based one in ApplicationData and ApplicationMetadata Added a migration for TimePlayed, just like in #4861 Consolidated ApplicationData's FileSize* properties into one FileSize property Added a formatting/parsing helper class ValueFormatUtils for TimeSpans, DateTimes, and file sizes Added new value converters for TimeSpans and file sizes for the Avalonia UI Added TimePlayedSortComparer Fixed sort order in LastPlayedSortComparer Fixed sort order for ApplicationData fields TimePlayed, LastPlayed, and FileSize Fixed crashes caused by SortHelper Replaced SystemInfo.ToMiBString with ToGiBString backed by ValueFormatUtils Replaced SaveModel.GetSizeString() with ValueFormatUtils * Additional ApplicationLibrary changes that got lost in the last commit * Removed unneeded usings * Removed converters as they are no longer needed * Updated comment on FormatDateTime * Removed base10 parameter from ValueFormatUtils FormatFileSize now always returns base 2 values with base 10 units Made ParseFileSize capable of parsing both base 2 and base 10 units * Removed nullable attribute from TimePlayed property Centralized TimePlayed update code into ApplicationMetadata * Changed UpdateTimePlayed() to use TimeSpan logic * Removed JsonIgnore attributes from ApplicationData * Implemented requested format changes * Fixed mistakes in method documentation comments * Made it so the Last Played value "Never" is localized in the Avalonia UI * Implemented suggestions * Remove unused import * Did a comment refinement pass in ValueFormatUtils.cs * Reordered ValueFormatUtils methods and sorted them into #regions * Integrated functionality from #5056 Also removed Logger print from last_played migration code * Implemented suggestions * Moved ValueFormatUtils and SystemInfo to namespace Ryujinx.Ui.Common * common: Respect proper value format convention and use base10 by default This could be discuss again in another issue/PR, for now revert to the previous behavior. Signed-off-by: Mary Guillemard <mary@mary.zone> --------- Signed-off-by: Mary Guillemard <mary@mary.zone> Co-authored-by: TSR Berry <20988865+TSRBerry@users.noreply.github.com> Co-authored-by: Mary Guillemard <mary@mary.zone>
2023-11-05Better handle instruction aborts when hitting unmapped memory (#5869)1.1.1070Somebody Whoisbored
* Adjust ARMeilleure to better handle instruction aborts when hitting unmapped memory * Update src/ARMeilleure/Decoders/Decoder.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>