Commit Graph

108 Commits

Author SHA1 Message Date
Gliniak
31ce3e0c71 [XAM] Added overlap to XamUserReadProfileSettings
- Removed delay on CompleteOverlappedDeferredEx
2025-05-30 23:39:17 +02:00
Gliniak
6173cedde7 [XAM] Changed behaviour of XamUserReadProfileSettings for invalid settings 2025-05-30 18:56:46 +02:00
Gliniak
e601b5ab87 [UI] Added modify profile UI
- Changed default icons size from 75x75 to 64x64 to match console icons size
- Added png_utils
- Removed all dialogs from xam_ui.cc into separate entities under xam/ui
- Added option to return INT32 and WSTRING type settings to host
- Added multiple enums related to user settings
- Added code to handle changing user pfp
- Fixed bug with system app being added to GPD played list
- Changed logic in: XamUserGetUserFlagsFromXUID
- Implemented: XamUserIsOnlineEnabled
- Implemented: XamUserGetMembershipTier
- Implemented: XamUserGetMembershipTierFromXUID
- Implemented: XamUserGetUserTenure
- Partially Implemented: XamUserGetSubscriptionType
2025-05-29 09:00:14 +02:00
Gliniak
de3b49e356 [XAM] Added overlap to XamReadTile 2025-05-07 20:41:34 +02:00
Gliniak
f6d9e76fca [XAM] Fixed assertion related to incorrect casting
This should fix crash in 12xxx dashboard while browsing achievements

- Fixed issue with invalid time being presented for some achievements
- Added stub for: XampWebInstrumentationSetProfileCounts
2025-05-07 20:05:29 +02:00
Gliniak
dd112ed462 [XAM] Multiple Profile/Dashboard related changes.
- Replaced multiple unknown parameters with proper named ones
- Added code to support creation of profile from dashboard initial run
- Added flag to remove ODD from being enumerated in devices (probably valid but not sure)
2025-05-06 23:10:18 +02:00
Gliniak
d18f80457d [XAM] Implemented: XamReadTile(Ex)
- Added missing param to XamContentAggregateCreateEnumerator
2025-05-05 23:47:11 +02:00
Adrian
6b055f1f74 [XAM] Assert struct sizes and misc struct adjustments 2025-05-05 19:26:34 +02:00
Gliniak
23d1f7a308 [XAM] Added overlap to XamUserWriteProfileSettings
This fixes saving in Earthworm Jim

Additionally fixed issue with not setting xuid to -1 when not provided
2025-03-13 22:54:02 +01:00
Gliniak
f833effd07 [XAM] Implemented XamParseGamerTileKey 2025-03-10 18:33:45 +01:00
Gliniak
0d06cdd649 [XAM] Removed overlap from XamUserReadProfileSettings. It currently breaks games for whatever reason.
- Updated params for: XamParseGamerTileKey, XamWriteGamerTile
2025-03-09 23:50:54 +01:00
The-Little-Wolf
34b7085ed3 [XAM/USER] - Implement XamUserCreateTitlesPlayedEnumerator
Implement of XamUserCreateTitlesPlayedEnumerator
2025-03-08 21:11:53 +01:00
Gliniak
1110cdd372 [Kernel] Added support for writing/reading GPD files
This breaks settings in games that are using them and savefiles in games that use settings to store progress
2025-03-07 11:59:48 +01:00
The-Little-Wolf
4d7b30e844 [Xam/XamUser] - Stub XamUserGetOnlineLanguageFromXUID
- Stubs XamUserGetOnlineLanguageFromXUID and have it return cvars::user_language
- Leave notes for future implementation once we have proper profile support
2025-01-17 08:32:46 +01:00
The-Little-Wolf
a77213dcdb [Xam/Xam_Profile] - Stub XamProfileCreate and more
- Move XamProfileFindAccount
- Leave notes for XamProfileOpen
- Stub XamProfileCreate
2025-01-12 16:31:39 +01:00
Gliniak
b757601f01 [XAM] XamUserGetName: Fixed issue introduced in previous commit 2025-01-01 18:43:52 +01:00
Gliniak
3f0a7f171f [XAM] XamUserGetName: Prevent false-positive in MS defender 2025-01-01 14:14:57 +01:00
Gliniak
fe85be8817 [XAM] Fixed possible crash caused by printing invalid characters in XamUserGetGamerTag and XamUserGetName 2024-12-30 19:47:10 +01:00
Gliniak
c3586bc165 [C++] Uplift version to C++20 2024-12-26 23:42:31 +01:00
Gliniak
3318ab5d4c [3PP] Uplifted FMT version and adjusted messages 2024-12-12 20:28:11 +01:00
Gliniak
e93373660f [Kernel] AchievementManager: Added Interface for attaching custom implementations 2024-12-10 22:21:24 +01:00
Adrian
61b2e15666 [XAM] Fix error code for XamUserGetIndexFromXUID 2024-12-03 14:51:25 +01:00
The-Little-Wolf
c71649161e [XAM] Implemented XamUserGetIndexFromXUID
Implement XamUserGetIndexFromXUID
2024-11-29 20:42:13 +01:00
The-Little-Wolf
1a98a6eaf3 [Xam/User] - Stub XamUserCreateTitlesPlayedEnumerator
Stub of XamUserCreateTitlesPlayedEnumerator in preparation for future GPD support
2024-11-29 09:19:42 +01:00
Gliniak
2b49fc2ddc [XAM] ProfileManager: Renamed GetProfiles to GetAccounts
This is to prevent confusion between signed-in accounts (aka. Profiles) and all entries (Accounts)

Also added GetAccount to get specific instead of all of them when not needed
2024-11-26 20:28:01 +01:00
Adrian
b17faf84f2 [XAM] Improve XamUserGetSubscriptionType 2024-11-25 22:18:19 +01:00
Adrian
4d44856b2b [XAM] Implemented XamProfileFindAccount 2024-11-25 20:46:54 +01:00
Adrian
3096bb87d4 [XAM] Improve XamUserIsUnsafeProgrammingAllowed Stub
Co-Authored-By: Pipi86 <66808852+Pipi86@users.noreply.github.com>
2024-11-25 08:48:13 +01:00
Adrian
05ae4ac6e9 [XAM] Implemented XamUserGetUserFlags & XamUserGetUserFlagsFromXUID 2024-11-25 08:47:46 +01:00
Adrian
c06b1f6e98 [XAM] Correct XUID type in XamUserCreateAchievementEnumerator 2024-11-24 11:00:21 +01:00
Adrian
1333b4dc98 [XAM] Correct error code in XamUserGetGamerTag 2024-11-24 10:51:38 +01:00
Gliniak
9bdd07590c [XAM] Implementation of: Profile Manager & Profiles Support
Thanks Emoose for Account Encrypt/Decrypt code!
2024-10-05 10:03:35 +02:00
Gliniak
e409a384ec [Kernel] Removed XAM specific entities from KernelState 2024-09-28 10:14:59 +02:00
Radosław Gliński
6f65ec382c [XAM] Fixed typo in: XamUserGetMembershipTier 2024-09-27 20:10:04 +02:00
Adrian
2fcf8c1163 [XAM] Replace constant with named error in GetSubscriptionType 2024-09-23 20:57:46 +02:00
Gliniak
d246e3bc70 [XAM] XamShowSigninUI: Send signin and UI close notification with delay from separate thread
This is to prevent situation when game waits for notification, but receives it beforehand
2024-09-21 22:35:03 +02:00
Gliniak
86bd62125d [Kernel] Implemented Game Info Database
This aggregates XDBF and XLAST into one entity.

Replaced UserData::Key into more versatile AttributeKey for future usage in properties
2024-09-20 19:29:37 +02:00
The-Little-Wolf
0deafaf9f9 [Kernel] Notification ID Changes
Based off of pull request  xenia-project#2047. Convert magic numbers numbers to enum to improve readability. Includes currently unused one for future use.
2024-09-02 08:24:43 +02:00
NicknineTheEagle
e5c8f00e26 [Kernel] Fixed XamShowSigninUI 2024-06-17 08:59:11 +02:00
Adrian
f2f8bba081 [XAM] XamUserGetName return Win32 code instead of HResult 2024-05-30 13:10:07 +02:00
Gliniak
b9061e6292 [LINT] Linted files + Added lint job to CI 2024-03-12 19:19:30 +01:00
Gliniak
321305cbf8 [XAM] Changes to settings handling
- Fixed incorrect X_USER_PROFILE_SETTING structure
- Added X_USER_PROFILE_SETTING_HEADER based on entries from console
- Removed X_USER_PROFILE_SETTING_DATA in favor of X_USER_DATA
X_USER_DATA is used also in Properties in exactly the same way
- Removed is_set in favor of X_USER_PROFILE_SETTING_SOURCE
- Prevent setting from storing settings longer than 0x3E8 bytes. Some games try to write bigger value which causes them to crash
2024-02-18 17:27:59 +01:00
Gliniak
2de1b8ad4b [Kernel] Added dummy XUserStatsEnumerator 2023-12-19 20:10:03 +01:00
Gliniak
a5596332c9 [Kernel] Put achievement enumerator in xenumerator file 2023-12-19 18:49:33 +01:00
Gliniak
ebdea6b02a [Kernel] Store earned achievements in-memory to prevent achievements spam
This doesn't store them externally so after restarting they will unlock again
2023-10-25 09:17:38 +02:00
Gliniak
413d60bf54 [XAM] Added XamUserCreateStatsEnumerator 2023-10-20 17:54:54 +02:00
chss95cs@gmail.com
2fa2f1a78c Add more wrapper functions to ppc_context_t in kernel, want to switch…
… over to referencing state through ppc_context as much as possible, it'll make implementing things like kernel processes much easier in the future

Move forward definitions of kernel types into kernel_fwd.h

Stub implementation of  XamLoaderGetMediaInfoEx
Partially implement XamSetDashContext
implement XamGetDashContext
Stub implementation of XamUserIsUnsafeProgrammingAllowed
Stub implementation of XamUserGetSubscriptionType
Expanded the supported object types for ObReferenceObjectByHandle and wrapped the logic for encoding the type in a constexpr function
ObReferenceObjectByName was taking lpstring_t for first param, but the function actually takes X_ANSI_STRING ptr

NtReleaseMutant actually does not return anything from KeReleaseMutant, it just checks the handle and returns whether it was invalid.

Changed the raise/lower irql functions to just set the irql on the pcr instead of setting it on field of Processor, processor is a shared object and irql is per-thread

Semi-stub implementation of KeGetImagePageTableEntry. I locked at it in the HV and got it so the values are in the same range the HV returns + actually reflect the page & memory range, but i doubt its equal to the values the hv returns on real hw. Used by modern dashboards, don't know for what.
Log error message for ObDereferenceObject w/ null ptr.

Allocate a special fixed page that dashboards reference, currently don't know what the data on that page is supposed to be.
Add current_irql field to X_KPCR
Added Device object member of XObject::Type enum
Added some notes about other gpu registers, found a table of register names and indices in xam
2023-04-23 10:39:52 -04:00
Gliniak
26415cb8b1 Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental 2022-12-31 11:19:01 +01:00
Gliniak
859bb89555 [Kernel] Support for loading achievement data 2022-12-28 14:16:43 -06:00
Gliniak
9f0d3d4c5b [Kernel] Simple support for loading achievement data 2022-12-25 16:11:59 +01:00