Commit graph

4677 commits

Author SHA1 Message Date
GreemDev
eb77050dd0 rename markup imported xml namespace to ext to match the rest of the codebase 2025-12-07 15:46:07 -06:00
GreemDev
518c4938ab forgot to string.Format gamedir page desc 2025-12-07 02:07:05 -06:00
GreemDev
3fbf204562 make page desc smaller 2025-12-07 02:06:53 -06:00
GreemDev
a8b0d2a2ce Localize all (I think...) previously hardcoded english strings in the setup wizard 2025-12-07 02:03:10 -06:00
GreemDev
bbbeace1f6 oops 2025-12-07 00:30:22 -06:00
GreemDev
e2f406f070 game dir setup
known bugs are a missing prod.keys popup after setup (how), as well as the dialog for autoload kinda cluttering up the screen after you hit next on the game dir page
2025-12-07 00:27:46 -06:00
GreemDev
ba9334e73d Separate firmware avatar loading from the selector view model
This is going to be used for the setup wizard (probably)
2025-12-06 14:50:02 -06:00
GreemDev
c8c5b9bbfb rewrite EmbeddedAvaloniaResources 2025-12-04 21:54:18 -06:00
GreemDev
9dcb71e120 add a setup finished screen
added the ability to hide the help button (basically just for the finish screen, because it has a bigger discord button in the same place)
holding shift while opening the setup wizard now opens it in passive mode, aka it will install only what you need. this is mostly for testing and likely will be nuked before this code as a whole is made part of the official emulator, but it might not
2025-12-04 21:54:18 -06:00
GreemDev
3bec37e756 reduce logo crunching 2025-12-04 21:54:18 -06:00
GreemDev
327cdb825a further simplify pagebuilding by embedding the desired title locale key in the context base type 2025-12-04 21:54:17 -06:00
GreemDev
a336bb0568 cleanup usings 2025-12-04 21:54:17 -06:00
GreemDev
51692a94d9 reorganize RyujinxSetupWizard
additionally, the CreateHelpContent method is now no longer locked to returning an Avalonia `Control`.
the WithHelpContent method also has logic to handle it returning a string directly, and will wrap it in a textblock with h1 style and size 20 font. otherwise it's up to the ContentPresenter for the help content to choose how to display it if it's none of the above mentioned types.
2025-12-04 21:54:17 -06:00
GreemDev
18fe8d4eff oops
i left in my very professional logger debugging
2025-12-04 21:54:17 -06:00
GreemDev
09d8b4880b Overhaul setup wizard help pages
the context can now override a virtual method named `CreateHelpContent` which the setup wizard system will automatically try to use when you use the generic overload taking a generic context type. If the return is null, it skips setting entirely (the default impl is null)

additionally made the discord join link a button with code copied from the about window, and made it centered at the bottom.
2025-12-04 21:54:17 -06:00
GreemDev
1c6652bae1 small cleanup 2025-12-04 21:54:17 -06:00
GreemDev
8ec1a3a594 rename NotificationHelper to RyujinxNotificationManager,
rename instance method names.
Additionally clarified what the math is in the notification manager margin parameter.
2025-12-04 21:54:17 -06:00
GreemDev
d9128ece5b use the margin to force it to show bottom center
(boy i sure do hope this doesnt have any adverse effects on anything but my specific resolution & scaling configuration!)
2025-12-04 21:54:17 -06:00
GreemDev
d75490cca6 OOPS broke the setup wizard :3 2025-12-04 21:54:17 -06:00
GreemDev
f566a4d921 cleanup 2025-12-04 21:54:17 -06:00
GreemDev
07834ad4a2 add "overwrite mode" for the setup wizard, basically this just ignores the precondition of having whatever the page configures before showing it.
i.e. if you had keys installed, previously it'd skip right to firmware.

additionally added more customization to the now instance-based NotificationHelper
2025-12-04 21:54:17 -06:00
GreemDev
8d9d6b1afc Setup Wizard restructuring
- Remove polymorphic base, this only existed because TKMM has a desktop/switch setup prodecure difference and has 2 implementations of the setup wizard. We only need one.
- Remove Systems/UI file split, they're all in Ryujinx.Ava.UI now
- made NotificationHelper instance-based to allow you to encapsulate notifications to a window that magically disappear when the window is closed, instead of switching to showing on the main window.
2025-12-04 21:54:17 -06:00
GreemDev
3202ec72b2 Bake setup step logic into the view models themselves instead of being in the setup wizard implementation
renamed view models to contexts (like TKMM), however the contexts here are actually of a unique base type; containing aforementioned setup step logic. if the return value is of an error state result, it will prompt a retry of the page.
2025-12-04 21:54:17 -06:00
GreemDev
df675813a4 fix "could not find part of path" error when installing firmware 2025-12-04 21:54:17 -06:00
GreemDev
e54cd90adc combine SetupWizardPage and the builder type since the builder mutated an instance of the built type anyways 2025-12-04 21:54:17 -06:00
GreemDev
aba0049a5e treat configuration load fail as first start (so you're prompted to set the game/autoload dirs, when that step is implemented) 2025-12-04 21:54:17 -06:00
GreemDev
3a0f92fbe5 add a setup wizard opener in the help dropdown in the menu bar, that also respects CanShowSetupWizard 2025-12-04 21:54:17 -06:00
GreemDev
c4873ca06b move more of the setup wizard logic into the setup wizard itself instead of having some critical logic in a random lambda in MainWindow.axaml.cs 2025-12-04 21:54:17 -06:00
GreemDev
615b2c8b8a fixup namespaces (again) 2025-12-04 21:54:17 -06:00
GreemDev
beb697b7f7 content & viewmodel object creation helper with out param, touch up firmware install step 2025-12-04 21:54:17 -06:00
GreemDev
fa3a0c11ce fix: require valid key installations before moving onto firmware setup step 2025-12-04 21:54:10 -06:00
GreemDev
94cb992083 firmware stage 2025-12-04 21:34:06 -06:00
GreemDev
bbd11d19d6 cleanup 2025-12-04 21:34:06 -06:00
GreemDev
a67da7fd30 more namespace fixes 2025-12-04 21:34:06 -06:00
GreemDev
4857fde4fe use a custom key install function with notifications instead of the normal one with dialogs 2025-12-04 21:34:06 -06:00
GreemDev
50c3dd0573 cleanup 2025-12-04 21:34:06 -06:00
GreemDev
aee46e16cd Initial work on a setup wizard
Setup wizard abstraction & architecture from TKMM
2025-12-04 21:34:05 -06:00
Princess Piplup
52700f71dc Fix SaveCurrentScreenshot (ryubing/ryujinx!230)
See merge request ryubing/ryujinx!230
2025-12-04 17:35:17 -06:00
Alula
b018a44ff0 Disable coredumps by default on Linux + other minor fixes (ryubing/ryujinx!204)
See merge request ryubing/ryujinx!204
2025-12-04 17:32:26 -06:00
GreemDev
d522bfef62 fix: Force the key install helper to delete key files before copying (not sure why the overwrite boolean does nothing for File.Copy) 2025-12-02 21:23:06 -06:00
KeatonTheBot
39f55b2af3 cpu: Protect against stack overflow caused by deep recursion (ryubing/ryujinx!111)
See merge request ryubing/ryujinx!111
2025-11-19 20:50:23 -06:00
Goodfeat
6126e3dc1e fix: UI: Custom setting was reset to global when changed during gameplay. (ryubing/ryujinx!164)
See merge request ryubing/ryujinx!164
2025-11-19 20:33:35 -06:00
GreemDev
e1c829f91d We no longer offer a dedicated headless build. This script could have been deleted like a year ago lol 2025-11-17 22:47:23 -06:00
Babib3l
6c7dc7646b Translation updates (ryubing/ryujinx!221)
See merge request ryubing/ryujinx!221
2025-11-17 22:34:54 -06:00
GreemDev
862a686c5e UI: Improve "Show Changelog" button in the updater
Now it no longer causes the dialog to disappear (which then promptly re-appears so you can click yes/no to accept/deny the update)
2025-11-17 00:15:58 -06:00
GreemDev
e8751e1c40 more C# 14 partial properties 2025-11-16 19:14:26 -06:00
GreemDev
09748b140a Use the new C# 14 null propagation setter 2025-11-16 19:14:26 -06:00
Coxxs
456db46065 Stub IWriterForApplication: 0 (CreateContextRegistrar) (ryubing/ryujinx!183)
See merge request ryubing/ryujinx!183
2025-11-16 18:24:41 -06:00
GreemDev
7b39ff36c0 docs: compat: ZA LDN works and has for a while 2025-11-16 00:30:37 -06:00
Maki
10476771d3 fix: detect face button layout for gamepads (ryubing/ryujinx!219)
See merge request ryubing/ryujinx!219
2025-11-14 12:51:53 -06:00