Commit Graph

86 Commits

Author SHA1 Message Date
The-Little-Wolf
a7e13e195b [Xam/Content] - Implement XamContentResolveInternal
- Implement XamContentResolveInternal
2026-05-23 20:21:55 +02:00
The-Little-Wolf
f88bfbe41e [Xam/Content] - Implement XamContentCreateEnumeratorInternal
- Implement XamContentCreateEnumeratorInternal
2026-05-18 20:30:38 +02:00
The-Little-Wolf
a292248bee [XAM/CONTENT] - Stub XamContentLaunchImage
- Stub XamContentLaunchImage and XamContentLaunchImageInternalEx
- Creates a common function for all XamContentLaunchImage functions
2026-04-12 19:38:41 +02:00
Adrian
a7f1a3f18a [XAM] Added profile and create content enumerator wrappers 2026-03-03 22:31:42 +01:00
Gliniak
9bfaff5040 [XAM] Fixed issue with XamContentCreate reassigning already assigned symlinks 2026-02-19 21:02:45 +01:00
The-Little-Wolf
a89513864c [XAM/CONTENT] - Implement XamContentRegisterChangeCallback
- Implement XamContentRegisterChangeCallback
- Callback used subfunction within XContentInstall
2025-12-15 08:12:13 +01:00
Gliniak
6437c498bd [XAM] Allow savefile content being saved in common directory if requested 2025-11-28 11:19:18 +01:00
The-Little-Wolf
3dc8130ed6 [XAM/CONTENT] - Add Missing returns and functions
- Add missing return values to XamContentCreateEx & XamContentCreateInternal
- Add Struct of XCONTENT_DATA_INTERNAL
- Properly implement XamProfileOpen
- Stub XamContentGetDeviceVolumePath
2025-10-14 21:54:36 +02:00
Gliniak
9434cc89c9 [XAM] Fixed specific edge-case when DLCs or Installed Data wouldn't be visible
This was caused by including flag "exclude common" for enumerations without xuid

- Added enum XContentFlag
2025-05-05 19:53:36 +02:00
Adrian
6b055f1f74 [XAM] Assert struct sizes and misc struct adjustments 2025-05-05 19:26:34 +02:00
Gliniak
b8296a9bc9 [XAM] Partial implementation of: XamContentResolve and Listing of ODD content packages
It's not perfect as it doesn't take internal package name or data, but it should be good enough for most titles
2025-04-26 17:49:22 +02:00
Gliniak
56703e52e2 [UI] Redesigned "Install Content" window
- Added ID for each ImGui window
- Added filesystem::CreateFolder function
2025-04-18 21:55:58 +02:00
The-Little-Wolf
0771938db6 [Kernel] - Implemented SystemManagementController Class
- Added handling (partial or dummy) for SMC actions:
 - QUERY_TEMP_SENSOR, QUERY_TRAY, QUERY_AV_PACK, QUERY_SMC_VERSION, QUERY_IR_ADDRESS, QUERY_TILT_SENSOR
 - SET_FAN_SPEED_CPU, SET_FAN_SPEED_GPU, SET_DVD_TRAY, SET_IR_ADDRESS, SET_POWER_LED, SET_LEDS

- Stub HalOpenCloseODDTray, XamLoaderGetMediaInfo, XamLoaderGetMediaInfoEx
- Partially Implement HalSendSMCMessage
- Implement XamLoaderGetDvdTrayState
- HalOpenCloseODDTray is used by dash and HalSendSMCMessage can be used by custom dashboards
2025-04-06 17:30:56 +02:00
Gliniak
09be7e874a [All] Fixed multiple issues during build on Linux
- Added some fixes introduced by RodoMa92 in PR198

- Lack of AVX2 extension (should be done differently in the future)
- Disable deprecated-volatile warning
- Added missing override in posix EventInfo, ImGui notification class and XContent class
- Removed not used XAudio2.h include in XMP
- Fixed missing switch-case in XObject
- Added fugly template in native_list.h
- Fixed multiple smaller issues
2025-01-10 21:41:45 +01:00
Gliniak
13badbb4c0 [XAM] Fixed issue with savefile removal via XamContentDeleteInternal
Removed all lpunknown_t in xam_content.cc file and replaced with lpvoid_t
2025-01-06 12:14:55 +01:00
Gliniak
c3586bc165 [C++] Uplift version to C++20 2024-12-26 23:42:31 +01:00
Gliniak
0949ebfb38 [XAM] Fixed issue with removing savefiles and searching for header in specific condition 2024-10-18 17:48:54 +02:00
Gliniak
85458c811f [XAM] Fixed issues with reading savefiles that are loaded via: XamContentAggregate 2024-10-13 15:29:04 +02:00
Gliniak
0a0cd2a882 [XAM] Fixed license for extracted XBLA games
This fixes bug introduced few days ago that prevented XBLA games from going into full game mode.
2024-10-12 16:54:47 +02:00
Gliniak
36453829df [XAM] Added overlap to XamContentGetLicenseMask
Also added logic for skipping "discs" as they don't have a license
2024-10-07 18:45:16 +02:00
Gliniak
9e4b2e343f [XAM] Allow content to read license from header 2024-10-06 21:15:50 +02: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
Gliniak
365a220b74 [XAM] XamContentGetCreator: Use deferred overlap 2024-08-17 11:26:46 +02:00
NicknineTheEagle
34322ebb41 [XAM] Set license mask for XBLA titles as well 2024-06-18 16:30:22 +02:00
Gliniak
a7ece0ac8f [XAM] Added Support For: XamContentLaunchImageInternal
This will unpack package file to content directory and load it on next boot
2024-02-11 18:17:24 +01:00
Gliniak
6f287a9597 [Emulator] Improvements to launch_data
Added support for autoload titles on boot with:
- Specific launch data
- Specific xex
- Restarting into packages: XamContentLaunchImageFromFileInternal
2024-02-11 13:11:39 +01:00
Gliniak
068b3811d9 [XAM] Added missing disposition return value from XamContentCreate 2023-10-20 12:21:11 +02:00
Gliniak
ce9a82ccf8 Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental 2023-09-01 18:20:29 +02:00
Gliniak
858af5ae75 [XAM] xeXamContentCreate - Disposition cleanup 2023-06-09 19:42:48 -05: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
6e501fbd61 [XAM] Set license mask for DLCs (Thanks Beeanyew) 2022-07-24 17:58:00 +02:00
Gliniak
3d96dfa359 Always allocate system heap from top of heap 2022-05-25 07:53:50 +02:00
Gliniak
5ce75a1479 Merge remote-tracking branch 'GliniakRepo/xam_swap_disc' into canary_experimental 2022-05-19 12:07:05 +02:00
Gliniak
f21dbc66ba Implemented XamSwapDisc 2022-05-19 12:04:32 +02:00
Gliniak
7c2cd16548 Merge remote-tracking branch 'GliniakRepo/local_multiplayer' into canary_experimental 2022-05-19 10:56:21 +02:00
Gliniak
6c6c5ac14b Merge remote-tracking branch 'GliniakRepo/experimentals' into canary_experimental 2022-05-19 10:51:44 +02:00
Gliniak
17b30be56a Added support for local multiplayer 2022-02-02 13:44:28 +01:00
Gliniak
6ad5c39fac [XAM/Content] Implemented Custom CON Header Handling 2022-01-31 22:14:02 +01:00
Gliniak
3a772e60b0 XamContentCreate: Return X_ERROR_FUNCTION_FAILED for overlapped failures 2022-01-31 20:15:41 +01: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
Gliniak
c9073e101f [XAM] Fix ContentCreate to pass copy of root_name.
[XAM] Fix xeXamContentCreate to pass copy of root_name for deferred
operation, as the pointer may no longer be valid when the callback
is executed.
2021-08-01 13:55:56 -05:00
gibbed
4498a28568 [XAM] Deferred xeXamContentCreate. 2021-06-30 03:39:22 -05: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
emoose
89e26d7b2b [Kernel] XamContentCreate*: pass XCONTENT_DATA size along to main content-creation func
This lets funcs like XamContentCreateInternal pass along a different XCONTENT_AGGREGATE_DATA struct, which the main func will know what to do with
2021-06-25 23:48:25 -05:00
emoose
fbf9c4630f [Kernel] Use XCONTENT_AGGREGATE_DATA in all ContentManager funcs
Since AGGREGATE_DATA contains extra info about title_id, and can be easily converted to/from XCONTENT_DATA.
2021-06-25 23:48:25 -05:00
emoose
13f30d3492 [Kernel] Merge Content*Data structs into XCONTENT*_DATA
Also moved XContentType to xbox.h so code can make use of it without needing to include STFS stuff
2021-06-25 23:48:25 -05:00
Gliniak
f298d7620a [Kernel/XAM] XamContentGetCreator: Added check for existing content 2021-05-27 16:11:35 -05:00
Gliniak
d4c3d665d5 [XAM/Content] Set disposition for overlapped cases 2021-04-30 20:12:56 -05:00