Commit Graph

73 Commits

Author SHA1 Message Date
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
Gliniak
da00ede181 [XAM/Settings] Check if provided size doesn't exceed maximal setting size 2022-08-21 17:46:00 +02:00
Gliniak
364137ef5f [XAM] Send UI On notification on start of XamShowSigninUI 2022-07-25 10:50:32 +02:00
Gliniak
2b3686f0e9 [XAM] Set profile setting 'from' entry accordingly to setting existence 2022-06-24 10:10:52 +02:00
Gliniak
dde8adc140 Allow XamUserReadProfileSettings to use xuid to define profile 2022-05-22 13:11:29 +02:00
Gliniak
5784e7bc8d Send signin changed notification for primary user 2022-05-22 13:09:25 +02:00
Gliniak
7c2cd16548 Merge remote-tracking branch 'GliniakRepo/local_multiplayer' into canary_experimental 2022-05-19 10:56:21 +02:00
Gliniak
17b30be56a Added support for local multiplayer 2022-02-02 13:44:28 +01:00
Gliniak
e9b9302cd3 [XAM] Small XamUserReadProfileSettings improvements 2022-01-31 21:39:56 +01:00
Rick Gibbed
e49916ea0a [XAM] Improvements to profile r/w setting exports
[XAM] Improvements to XamUserReadProfileSettingsEx/
XamUserWriteProfileSettings.

- Unify X_USER_READ_PROFILE_SETTING and X_USER_WRITE_PROFILE_SETTING
  into X_USER_PROFILE_SETTING.
- Clean up Setting serialization to use X_USER_PROFILE_SETTING_DATA
  instead of manual buffer copying.
- Fix XamUserReadProfileSettingsEx case where user_index is non-zero
  and xuids are being used.
- Skip unset settings in XamUserWriteProfileSettings_entry.
2022-01-24 07:29:57 -06:00
gibbed
12ec728989 [Kernel] Use tables for export groups. 2022-01-09 14:16:37 -06:00
gibbed
3ad0a7dab2 [Kernel] Suffix export functions with _entry. 2022-01-09 12:17:03 -06:00
Triang3l
e720e0a540 [Code] Remove game names from code comments (most of at least) 2021-09-05 21:27:40 +03:00
Triang3l
f540c188bf [Lint] Revert incorrect clang-format changes 2021-08-26 21:18:18 +03:00
Triang3l
7edfdc2672 Merge branch 'master' into linux_windowing 2021-08-26 22:58:14 +03:00
gibbed
e8fda5878c [XAM] Enumerator improvements.
- [Kernel] XEnumerator::WriteItems no longer cares about provided
  buffer size, since we know the size when the XEnumerator was created.
- [Kernel] Added XStaticEnumerator template. Previous
  XStaticEnumerator renamed to XStaticUntypedEnumerator.
- [XAM] Deferred xeXamEnumerate.
2021-06-30 03:39:22 -05:00
Cancerous
afde40ab6c XAM fixes.
Updated PR from Permanulled PR #1150.

- [XAM] Stub XGI messages.
- [XAM] Stub XLiveBase GetServiceInfo message.
- [XAM] Stub error out of NetDll_WSARecvFrom.
- [XAM] Stub XamSessionRefObjByHandle.

Improves Aegis Wings, Jetpac, Metal Slug 3, and State of Decay.


Co-authored-by: PermaNulled <crich@thedefaced.org>
2021-06-28 09:51:15 -05:00
Joel Linn
d87bf995e1 Satisfy linter
Apply changes suggested by clang-format-12
2021-06-27 16:33:35 -05:00
Triang3l
fa653cce5d [Kernel] Fix a comment length lint issue 2021-06-26 16:19:41 +03:00
madmodder123
e8dde519cc [XAM] XamShowSigninUI: Fix issue with loading profile(s) 2021-06-25 23:42:00 -05:00
Gliniak
29f7987401 [XAM] XamReadTileToTexture: tile_id safety check 2021-05-27 16:16:20 -05:00
gibbed
21c28a07f1 [XAM] Write stub buffer in XamReadTileToTexture.
[XAM] Write stub texture buffer (white) in XamReadTileToTexture.
2021-05-08 11:13:30 -05:00
gibbed
8d8bab853d [XAM] Define unknown args for XamReadTileToTexture. 2021-05-08 11:13:30 -05:00
gibbed
37a733e33a [XAM] More values for dummy achievement details.
[XAM] Provide image ID and flags for dummy achievement details.
2021-05-08 11:13:30 -05:00
gibbed
0f6bfcf0d5 [XAM] Base dummy achievement details at ID 1. 2021-05-08 11:13:30 -05:00
gibbed
5d778cfef6 [XAM] Better text for dummy achievement details. 2021-05-08 11:13:30 -05:00
gibbed
b2011453cc [XAM] Cap dummy achievement details to 100. 2021-05-08 11:13:30 -05:00
gibbed
b735e3f40d [XAM] Fix dummy achievement details count. 2021-05-08 11:13:30 -05:00
gibbed
cf2037cdf6 [XAM] Cap the number of dummy achievement details. 2021-05-08 09:10:28 -05:00
gibbed
1c78c9d75d [XAM] Fix adding dummy achievement details.
[XAM] Fix infinite loop in adding dummy achievement details when
count>255.
2021-05-08 09:10:28 -05:00
Gliniak
d2ca54d909 [Kernel/XAM] Dummy X_ACHIEVEMENT_DETAILS support
Co-authored-by: gibbed <rick@gibbed.us>
2021-05-08 07:47:03 -05:00
gibbed
319699130a [XAM] Improvement rollup. Content, enumerators...
- [Kernel] Create guest object for XEnumerator.
- [XAM] Split content data into host/guest variants.
- [XAM] Correct message return type from RESULT to HRESULT.
- [XAM] Add a new dummy content device for ODD.
- [XAM] Implement XamContentAggregateCreateEnumerator.
- [XAM] Implement XamGetPrivateEnumStructureFromHandle.
- [XAM] Implement XMsgCompleteIORequest (sketchy).
- [XAM] Implement XamGetOverlappedResult (sketchy).
- [XAM] Implement XamTaskSchedule (sketchy).
2020-11-27 14:19:30 -06:00
gibbed
49dc0e9c39 [XAM] Rollup of user fixes.
- [XAM] Fix XamUserGetXUID type mask handling.
- [XAM] Fix XamGetUserName return values.
- [XAM] Fix XamGetUserName copy size.
- [XAM] Implement XamGetUserGamerTag.
- [XAM] Fix XamUserCheckPrivilege handling of all users.
- [XAM] Stub XamUserGetMembershipTier.
2020-11-17 19:58:30 -06:00
Triang3l
91d5ba444a [Base/Kernel] Add and use truncating null-terminating string copying 2020-11-15 11:27:59 -06:00
gibbed
2b8f347b0b [XAM] Stub xuids usage xeXamUserReadProfileSettingsEx.
[XAM] Stub valid xuids usage xeXamUserReadProfileSettingsEx.
2020-10-26 16:07:37 -05:00
gibbed
f631b02bcf [XAM] Fix xeXamUserReadProfileSettingsEx.
[XAM] Fix xeXamUserReadProfileSettingsEx.

- Properly calculate initial buffer_offset.
- Don't set buffer_size_ptr when its initial value is non-zero.
2020-04-13 17:55:15 -05:00