[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.
- [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.
- 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.
- Convert http to https, provide archive link when possible.
- Made CPU-JIT.png more readable on dark themes;
Added a white background so there isn't black text on a black
background.
This is a regression in functionality and performance, but a much better
foundation for the future of the project (I think). It can run basic
apps under an SSA interpreter but doesn't support some of the features
required to do real 360 apps yet.
This should make it easier to find files and (in the future) split things
up into separate libraries.
It also changes around emulator initialization to make it a little more
difficult to do things out of order and a little more sensible as to when
real init work happens.
Also adding a skeleton audio system/driver and reworking CPU register
access to be more extensible.