[Xam/User_profile] - Add missing filenames & device types

- Add missing XTileType filenames
- Add missing device types
- Add XamLoaderLaunchTitle/Ex Flags
- Add ExThreadCreate flags and logging (from nukernel)
- Add more logging to user_module
- Add missing XamReadTileEx param
This commit is contained in:
The-Little-Wolf
2026-01-10 16:06:04 -08:00
committed by Radosław Gliński
parent 49c700b9c5
commit 2027f50b6e
6 changed files with 73 additions and 16 deletions

View File

@@ -77,8 +77,13 @@ enum class XTileType {
inline const std::map<XTileType, std::string> kTileFileNames = {
{XTileType::kGamerTile, "tile_64.png"},
{XTileType::kGamerTileSmall, "tile_32.png"},
{XTileType::kPersonalGamerTile, "tile_64.png"},
{XTileType::kPersonalGamerTileSmall, "tile_32.png"},
{XTileType::kLocalGamerTile, "tile_64.png"},
{XTileType::kLocalGamerTileSmall, "tile_32.png"},
{XTileType::kAwardedGamerTile, "64_{:08x}{:08x}{:08x}.png"},
{XTileType::kAwardedGamerTileSmall, "32_{:08x}{:08x}{:08x}.png"},
{XTileType::kGamerTileByImageId, "{:d}_{:08x}{:08x}{:08x}.png"},
{XTileType::kPersonalGamerTile, "pp_64.png"},
{XTileType::kPersonalGamerTileSmall, "pp_32.png"},
{XTileType::kAvatarGamerTile, "avtr_64.png"},
{XTileType::kAvatarGamerTileSmall, "avtr_32.png"},
};

View File

@@ -373,6 +373,11 @@ struct X_STATS_DETAILS {
};
static_assert_size(X_STATS_DETAILS, 8 + kStatsMaxAmount * 2);
enum LoaderLaunchFlags : uint32_t {
GetSystemVersion = 0x00000040, // XamUpdateGetCurrentSystemVersion
GetVersionFromExecutionId = 0x00010000,
};
} // namespace xam
} // namespace kernel
} // namespace xe

View File

@@ -22,8 +22,10 @@ enum class DeviceType : uint32_t {
Invalid = 0,
HDD = 1,
MU = 2, // support removed in 9199
System = 3,
ODD = 4,
TransferCable = 8,
Sapphire = 15,
USBMASS = 16, // Added in 8955
};

View File

@@ -695,7 +695,7 @@ dword_result_t XamReadTile_entry(dword_t tile_type, dword_t title_id,
qword_t item_id, dword_t user_index,
lpdword_t output_ptr,
lpdword_t buffer_size_ptr,
lpvoid_t overlapped_ptr) {
pointer_t<XAM_OVERLAPPED> overlapped_ptr) {
auto user = kernel_state()->xam_state()->GetUserProfile(user_index);
if (!user) {
user = kernel_state()->xam_state()->GetUserProfile(item_id);
@@ -747,9 +747,10 @@ dword_result_t XamReadTileEx_entry(dword_t tile_type, dword_t game_id,
qword_t item_id, dword_t offset,
dword_t unk1, dword_t unk2,
lpdword_t output_ptr,
lpdword_t buffer_size_ptr) {
lpdword_t buffer_size_ptr,
pointer_t<XAM_OVERLAPPED> overlapped_ptr) {
return XamReadTile_entry(tile_type, game_id, item_id, offset, output_ptr,
buffer_size_ptr, 0);
buffer_size_ptr, overlapped_ptr);
}
DECLARE_XAM_EXPORT1(XamReadTileEx, kUserProfiles, kSketchy);