Evan Husted
f3a9cecf72
UI: Rename Show Title Bar + Revamp for global settings window
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2025-03-05 18:39:42 -06:00
Evan Husted
2317c06364
misc: small Avalonia project restructure
...
Moved AppLibrary, Configuration, and PlayReport namespaces to Ryujinx.Systems, add the compat list stuff in the base Ryujinx.Systems namespace.
Moved the compatibility UI stuff to the proper UI view/viewmodel folders.
2025-03-04 18:01:48 -06:00
Evan Husted
f7976753fd
misc: chore: move ThreadedRenderer creation logic into IRenderer base (since ThreadedRenderer is a GAL construct anyways)
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2025-03-04 00:14:56 -06:00
Evan Husted
b45a65fbdc
misc: chore: rework HLEConfiguration
2025-03-04 00:08:01 -06:00
Vladimir Sokolov
2e4de17472
Custom configuration for each game ( #632 )
...
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run


Now you can make a separate configuration (independent file) for each
game. All emulator settings are available except for some UI functionality ones.
The configuration file can be changed and deleted from a separate menu. The
user configuration menu is available through the context menu on a given application.
---------
Co-authored-by: Evan Husted <greem@greemdev.net>
2025-02-25 21:11:20 -06:00
Evan Husted
fe1617ffea
Revert the Metal Experiment ( #701 )
...
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
Metal sounded like a good idea to get in the emulator but frankly I
underestimated just how experimental and not ready it was.
From my write up in the Discord:
```
As is, Metal supports only a few games.
The games it does support freeze on first use of not playing them via Vulkan, because shader translation is broken.
So you need to use a dirty hack to not delete all your shaders.
Not to mention it breaks many games via MoltenVK because of changes to the shared GPU code.
Merging Metal seemed like a great idea, because of the few games it does support.
But I don't think it's worth it. Many of the games it breaks via MoltenVK *don't work via Metal*.
Which effectively makes current Ryubing worse for Mac users than Ryujinx 1.1.1403.
I think what I'm gonna do is revert Metal, and reopen it as a PR. That way, you can still take advantage of the Metal backend as is, but without making other games worse with no solution.
```
For what it's worth, the shader translation part could at least be
"fixed" by always applying a 30ms delay for shader translation to Metal.
That being said, that solution sucks ass.
The MoltenVK regressions are even worse.
I hope this is not a let down to the Mac users. I hope you realize I'm
reverting this because you're actively getting a worse experience with
it in the emulator.
2025-02-22 21:26:46 -06:00
Evan Husted
6c6580ddcc
misc: chore: Move the LDN constants into a SharedConstants class
2025-02-20 19:30:00 -06:00
Evan Husted
17e8ae1d9a
UI: More advanced customization for what happens when Ryujinx loses focus
2025-02-13 01:57:08 -06:00
Evan Husted
e0db55df46
UI: When starting games in fullscreen, change ExtendsContentIntoTitleBar to true.
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2025-02-11 12:04:34 -06:00
Evan Husted
774edb7b29
UI: Match System Time is now an active setting which you can toggle on/off.
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2025-02-02 23:46:55 -06:00
Evan Husted
04ce7fb764
misc: chore: [ci skip] VSync progression as an extension
2025-01-30 16:54:05 -06:00
Evan Husted
359852b5c0
UI: Change order of VSync mode changing
...
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
VSync -> VSync Off -> Custom
is now
VSync -> Custom -> VSync Off
Note that Custom only appears if it's enabled in settings. This has no change if you aren't using custom VSync.
2025-01-30 16:47:40 -06:00
Evan Husted
ae90db2040
misc: chore: Use collection expressions in Avalonia project
2025-01-26 15:47:11 -06:00
Evan Husted
3cdaaa0b69
misc: chore: Fix object creation in Avalonia project
2025-01-26 15:16:50 -06:00
Evan Husted
e3f20abd23
UI: RPC: Maintain game started timestamp for the duration of the AppHost
2025-01-25 22:44:16 -06:00
Evan Husted
be3bd0bcb5
misc: chore: Use explicit types in the Avalonia project
2025-01-25 14:00:23 -06:00
Evan Husted
3b5f6170d1
misc: chore: move Rainbow updating to a separate task started/stopped as needed
...
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
update gommon & use the Event class from it to allow easily clearing all handlers when the apphost exits to avoid leftover invalid event handlers in the rainbow event handler list.
More robust config application logic to ensure what needs to happen only happens once
2025-01-24 23:06:59 -06:00
Otozinclus
1ce37ec317
Add option to change controller LED color ( #572 )
...
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
This allows the user to change the controller LED while using Ryujinx.
Useful for PS4 and PS5 controllers as an example.
You can also use a spectrum-cycling Rainbow color option, or turn the LED off for DualSense controllers.
---------
Co-authored-by: Evan Husted <greem@greemdev.net>
2025-01-24 14:47:36 -06:00
Evan Husted
33079422fe
misc: chore: code cleanups
2025-01-23 16:47:11 -06:00
asfasagag
11531dacb6
UI: Option to automatically Hide UI when game launches ( #462 )
...
Quality of life feature
Similar in function to the "Start Games in Fullscreen" toggle
For users who want to run games in windowed/non-fullscreen mode with
menu UI hidden, this eliminates the need to always click "Hide UI"
2025-01-21 17:36:51 -06:00
Evan Husted
789d6ab959
misc: chore: Improve autoloading DLC/updates logging, deliberately switch to Vulkan if Metal was somehow chosen on a non-mac system, add logger lines in the updater, cleanup enabled logs printing
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2025-01-21 14:59:08 -06:00
Evan Husted
31e5f74e05
UI: misc: Replace spaces in Title with newlines when using custom title bar (since the Title is in an Avalonia tooltip)
2025-01-19 13:05:20 -06:00
Evan Husted
e6bad52945
Revert "Only selectively compile Metal & fix some compilation issues"
...
This reverts commit beda3206e0 .
2025-01-18 10:56:58 -06:00
Evan Husted
beda3206e0
Only selectively compile Metal & fix some compilation issues
2025-01-18 10:52:32 -06:00
Evan Husted
9bb50fc6dd
misc: improve unpacking error & add nullability to SelectedIcon
2025-01-03 22:25:32 -06:00
Evan Husted
61ae427a4d
misc: Add CommunityToolkit.Mvvm for observable property generation; apply it to MainWindowViewModel for now.
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2024-12-31 03:29:08 -06:00
Evan Husted
f362bef43d
misc: Overhaul DirtyHacks saving to support storing a value alongside an off/off flag.
2024-12-29 21:17:01 -06:00
Evan Husted
f5ce539de9
misc: Move the rest of Ryujinx.UI.Common into other parts of the project.
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2024-12-29 19:28:27 -06:00
Evan Husted
6caab1aa37
misc: move Models & Helpers into Common & Avalonia projects
2024-12-29 19:09:28 -06:00
Evan Husted
32cdccde12
misc: Move UserError to Common project
2024-12-29 18:06:18 -06:00
Evan Husted
f463ea1c5d
misc: Refactor Discord integration to listen on TitleIDs.CurrentApplication changes instead of waiting to be directly told when to change states.
2024-12-29 03:27:05 -06:00
Evan Husted
8b3a945b5f
misc: Dirty Hacks
...
Enable this settings screen via a boolean in Config.json
First one is the xb2 menu softlock fix
2024-12-28 22:04:21 -06:00
Evan Husted
09107b67ff
misc: Remove GAL/Configuration duplicate enums
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2024-12-28 05:08:21 -06:00
Evan Husted
1bc0159139
Once again, I am stupid
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2024-12-27 00:41:50 -06:00
Evan Husted
17233d30da
misc: give various threads dedicated names
...
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
Move all title ID lists into a TitleIDs class in Ryujinx.Common, with helpers.
Unify & simplify Auto graphics backend selection logic
2024-12-26 00:29:00 -06:00
Evan Husted
2f540dc88c
infra: chore: fix/silence compile warnings
2024-12-24 01:23:01 -06:00
Evan Husted
852823104f
EXPERIMENTAL: Metal backend ( #441 )
...
This is not a continuation of the Metal backend; this is simply bringing
the branch up to date and merging it as-is behind an experiment.
---------
Co-authored-by: Isaac Marovitz <isaacryu@icloud.com>
Co-authored-by: Samuliak <samuliak77@gmail.com>
Co-authored-by: SamoZ256 <96914946+SamoZ256@users.noreply.github.com>
Co-authored-by: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>
Co-authored-by: riperiperi <rhy3756547@hotmail.com>
Co-authored-by: Gabriel A <gab.dark.100@gmail.com>
2024-12-24 00:55:16 -06:00
Marco Carvalho
ff6628149d
Migrate to .NET 9 ( #198 )
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2024-12-19 18:52:25 -06:00
WilliamWsyHK
d00754477e
Add Firmware keyword in log if it is indeed firmware ( #343 )
...
Co-authored-by: LotP1 <rasmus.stilling.pedersen1@gmail.com>
2024-12-07 04:03:01 -06:00
Evan Husted
1d0152b961
UI: Move Shader Compilation hint, graphics backend, and GPU manufacturer to the right side of the status bar, next to firmware version.
...
Canary release job / Create tag (push) Has been cancelled
Canary release job / Release for linux-arm64 (push) Has been cancelled
Canary release job / Release for linux-x64 (push) Has been cancelled
Canary release job / Release for win-x64 (push) Has been cancelled
Canary release job / Release MacOS universal (push) Has been cancelled
Removed the "Game:" prefix in front of FPS.
2024-12-04 03:37:21 -06:00
Keaton
2e6794e69b
Add custom refresh rate mode to VSync option ( #238 )
...
Rebased @jcm93's refreshinterval branch:
https://github.com/jcm93/Ryujinx/tree/refreshinterval
The option is placed under System/Hacks. Disabled, it's the default
Ryujinx behavior. Enabled, the behavior is shown in the attached
screenshots. If a framerate is too high or low, you can adjust the value
where you normally toggle VSync on and off. It will also cycle through
the default on/off toggles.
Also, in order to reduce clutter, I made an adjustment to remove the
target FPS and only show the percentage.
---------
Co-authored-by: jcm <6864788+jcm93@users.noreply.github.com>
2024-11-25 13:39:09 -06:00
Evan Husted
5534001152
UI: Always save screenshots to the Ryujinx data directory.
2024-11-22 15:08:24 -06:00
Vudjun
6d8738c048
TESTERS WANTED: RyuLDN implementation ( #65 )
...
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
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-11-11 16:06:50 -06:00
Evan Husted
6911e288bc
misc: Code cleanups.
2024-11-01 12:00:07 -05:00
Evan Husted
dfb4854d19
misc: Replace references to IntPtr/UIntPtr with nint/nuint + code cleanups.
2024-10-26 08:46:50 -05:00
Evan Husted
281be7ca62
misc: Code cleanup
2024-10-25 08:36:41 -05:00
Evan Husted
a01a06cd3f
2 unmerged PRs from original Ryujinx:
...
Implement shader compile counter (currently not translated, will change, need to pull changes.)
Remove event logic in favor of a single init function.
Thanks @MutantAura
2024-10-24 14:14:17 -05:00
Keaton
f76a97c976
Replace 'Expand DRAM' option with dropdown menu ( #32 )
...
Allows to use mods that require a larger memory pool to allocate from.
2024-10-21 23:16:41 -05:00
Evan Husted
509f6d738c
Revert Maximized = Fullscreen changes, fixes #20
2024-10-21 02:43:07 -05:00
Evan Husted
2facad4be3
UI: Reset RPC state when AppHost stops
2024-10-19 16:40:28 -05:00