Commit Graph

66 Commits

Author SHA1 Message Date
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
gibbed
230015f9ca [XAM] Add default case.
[XAM] Add default case in xeXamUserReadProfileSettingsEx.
2020-04-13 14:27:46 -05:00
gibbed
e03368c37e [XAM] Fix args of XamUser*ProfileSettings(Ex).
- Update arguments of XamUserReadProfileSettings/
  XamUserReadProfileSettingsEx.
- Fix arguments of XamUserWriteProfileSettings.
2020-04-13 12:57:14 -05:00
gibbed
3c8493dea2 [XAM] Clean up user index handling & stub.
- Clean up user index handling in XamUserGetXUID,
  XamUserGetSigninState, XamUserReadProfileSettings,
  XamUserWriteProfileSettings, XamUserCheckPrivilege,
  XamUserContentRestrictionGetFlags, XamUserAreUsersFriends.
  A user index of 0xFF does not mean anything special and is outright
  invalid.
- Move XamUserReadProfileSettings code to new
  xeXamUserReadProfileSettingsEx.
- Implement XamUserReadProfileSettings/XamUserReadProfileSettingsEx
  which now call xeXamUserReadProfileSettingsEx.
- Reorganized xeXamUserReadProfileSettingsEx so that the needed buffer
  size is checked before user index is validated, so that calls to
  determine necessary buffer size return correctly instead of an error
  about invalid user index.
- Stub XamUserIsOnlineEnabled.
2020-04-13 12:57:14 -05:00
gibbed
a48bb71c2f Overhaul logging. 2020-04-07 16:09:41 -05:00
gibbed
c19a052b96 [XAM] Don't use strncpy for XamUserGetName. 2019-09-12 03:41:02 -05:00
gibbed
527f960288 [Kernel] Proper size in XamUserCreateAchievementEnumerator. 2018-11-26 20:43:41 -06:00
gibbed
b24936d248 [Kernel] Tag XamUserGetSigninState as high frequency. 2018-11-23 09:02:49 -06:00