Commit graph

4689 commits

Author SHA1 Message Date
GreemDev
b7dd718d6f use lambda-based config modifier insstead of manually setting a bool to true 2025-12-22 00:13:53 -06:00
GreemDev
6ee7957574 use a helper to get key path instead of checking mode & userpath existing every time 2025-12-19 23:15:23 -06:00
GreemDev
bf62531802 unused property 2025-12-19 23:15:23 -06:00
GreemDev
17be50ea80 Update title with page 2025-12-19 23:15:23 -06:00
GreemDev
ec50a1ec3e rename markup imported xml namespace to ext to match the rest of the codebase 2025-12-19 23:15:23 -06:00
GreemDev
5a20047e5e forgot to string.Format gamedir page desc 2025-12-19 23:15:23 -06:00
GreemDev
f9fed4cf4d make page desc smaller 2025-12-19 23:15:23 -06:00
GreemDev
2970dcd3c7 Localize all (I think...) previously hardcoded english strings in the setup wizard 2025-12-19 23:15:23 -06:00
GreemDev
4be6cb2fa1 oops 2025-12-19 23:15:23 -06:00
GreemDev
c90d2af9cd 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-19 23:15:23 -06:00
GreemDev
13ff9cb162 Separate firmware avatar loading from the selector view model
This is going to be used for the setup wizard (probably)
2025-12-19 23:15:23 -06:00
GreemDev
b35ba58831 rewrite EmbeddedAvaloniaResources 2025-12-19 23:15:23 -06:00
GreemDev
e12a77d4a3 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-19 23:15:23 -06:00
GreemDev
804a4e0bcb reduce logo crunching 2025-12-19 23:15:23 -06:00
GreemDev
94870eafaa further simplify pagebuilding by embedding the desired title locale key in the context base type 2025-12-19 23:15:23 -06:00
GreemDev
7e6cc31866 cleanup usings 2025-12-19 23:15:23 -06:00
GreemDev
3b25c43abf 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-19 23:15:23 -06:00
GreemDev
1804dd031b oops
i left in my very professional logger debugging
2025-12-19 23:15:23 -06:00
GreemDev
211498e060 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-19 23:15:23 -06:00
GreemDev
4bdee89288 small cleanup 2025-12-19 23:15:23 -06:00
GreemDev
d8a6364cca rename NotificationHelper to RyujinxNotificationManager,
rename instance method names.
Additionally clarified what the math is in the notification manager margin parameter.
2025-12-19 23:15:23 -06:00
GreemDev
2f794794c6 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-19 23:15:23 -06:00
GreemDev
1d6c2426df OOPS broke the setup wizard :3 2025-12-19 23:15:23 -06:00
GreemDev
6cd03f15fa cleanup 2025-12-19 23:15:23 -06:00
GreemDev
3fe7600382 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-19 23:15:23 -06:00
GreemDev
dc2aa837b3 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-19 23:15:22 -06:00
GreemDev
133ac41425 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-19 23:15:22 -06:00
GreemDev
fd2ecee479 fix "could not find part of path" error when installing firmware 2025-12-19 23:15:22 -06:00
GreemDev
8f529d17a8 combine SetupWizardPage and the builder type since the builder mutated an instance of the built type anyways 2025-12-19 23:15:22 -06:00
GreemDev
884d0f526c treat configuration load fail as first start (so you're prompted to set the game/autoload dirs, when that step is implemented) 2025-12-19 23:15:22 -06:00
GreemDev
c5b325bde2 add a setup wizard opener in the help dropdown in the menu bar, that also respects CanShowSetupWizard 2025-12-19 23:15:22 -06:00
GreemDev
8ab851ead8 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-19 23:15:22 -06:00
GreemDev
5a060cf451 fixup namespaces (again) 2025-12-19 23:15:22 -06:00
GreemDev
9b0fa3bf6d content & viewmodel object creation helper with out param, touch up firmware install step 2025-12-19 23:15:22 -06:00
GreemDev
325e13a490 fix: require valid key installations before moving onto firmware setup step 2025-12-19 23:15:22 -06:00
GreemDev
e202cccc6e firmware stage 2025-12-19 23:15:22 -06:00
GreemDev
e0ed8f56ea cleanup 2025-12-19 23:15:22 -06:00
GreemDev
46b2fb92d7 more namespace fixes 2025-12-19 23:15:22 -06:00
GreemDev
8563e7d4dc use a custom key install function with notifications instead of the normal one with dialogs 2025-12-19 23:15:22 -06:00
GreemDev
ee10cbf735 cleanup 2025-12-19 23:15:22 -06:00
GreemDev
b033adbde7 Initial work on a setup wizard
Setup wizard abstraction & architecture from TKMM
2025-12-19 23:15:22 -06:00
GreemDev
66f339d265 CI 2.0 (ryubing/ryujinx!237)
See merge request ryubing/ryujinx!237
2025-12-18 22:56:50 -06:00
GreemDev
6cdbdfd329 [ci skip] Pin GitLabCli to 1.4.1 in CI scripts so I can test v2.0 2025-12-18 03:27:43 -06:00
GreemDev
9f817d60d5 oops 2025-12-18 03:05:42 -06:00
GreemDev
5cffc95be6 Make all OSes build on Linux (7zip has a linux version) 2025-12-18 03:01:22 -06:00
LotP
2c0977f6b3 fix pre-action crash (ryubing/ryujinx!236)
Some checks failed
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
Canary release job / Create GitLab Release (push) Has been cancelled
See merge request ryubing/ryujinx!236
2025-12-12 14:28:54 -06:00
LotP
3a593b6084 Fix kaddressarbiter crash (ryubing/ryujinx!235)
Some checks failed
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
Canary release job / Create GitLab Release (push) Has been cancelled
See merge request ryubing/ryujinx!235
2025-12-06 20:16:43 -06:00
LotP
c3155fcadb Memory Changes 3.2 (ryubing/ryujinx!234)
Some checks are pending
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
Canary release job / Create GitLab Release (push) Blocked by required conditions
See merge request ryubing/ryujinx!234
2025-12-06 17:19:19 -06:00
LotP
fd7554425a Update BiquadFilterEffectParameter2.cs (ryubing/ryujinx!233)
Some checks failed
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
Canary release job / Create GitLab Release (push) Has been cancelled
See merge request ryubing/ryujinx!233
2025-12-05 07:53:09 -06:00
Princess Piplup
52700f71dc Fix SaveCurrentScreenshot (ryubing/ryujinx!230)
Some checks are pending
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
Canary release job / Create GitLab Release (push) Blocked by required conditions
See merge request ryubing/ryujinx!230
2025-12-04 17:35:17 -06:00