[XAM] - xcontent_type fixes & more

- added unknown smc call
- xcontent_type corrections
- add transfer cable to device type
- Select gamer type in gamercard
This commit is contained in:
The-Little-Wolf
2025-07-24 12:02:46 -07:00
committed by Radosław Gliński
parent 6a8193d360
commit eed4242059
5 changed files with 21 additions and 4 deletions

View File

@@ -94,6 +94,8 @@ enum X_SMC_CMD : uint8_t {
QUERY_RTC = 0x4,
QUERY_TEMP_SENSOR = 0x7,
QUERY_TRAY = 0xA,
QUERY_UNK_0xB =
0xB, // called on start up after VdQueryVideoMode on dash v13599
QUERY_AV_PACK = 0xF,
I2C_READ_WRITE = 0x11,
QUERY_SMC_VERSION = 0x12,

View File

@@ -177,6 +177,12 @@ static constexpr const char* CameraLocationOptions[] = {"Behind", "In Front",
static constexpr const char* BrakeControlOptions[] = {"Trigger", "Button"};
static constexpr const char* AcceleratorControlOptions[] = {"Trigger",
"Button"};
static constexpr const char* GamerTypeOptions[] = {"None",
nullptr,
nullptr,
"Xbox 360 Launch Team",
"NXE Launch Team",
"360 + NXE Launch Team"};
constexpr std::array<UserSettingId, 19> UserSettingsToLoad = {
UserSettingId::XPROFILE_GAMER_TYPE,
@@ -529,6 +535,10 @@ void GamercardUI::DrawGpdSettings(ImGuiIO& io) {
"Accelerator Control", AcceleratorControlOptions,
static_cast<int>(std::size(AcceleratorControlOptions)),
rightSideTextObjectAlignment);
DrawSettingComboBox(UserSettingId::XPROFILE_GAMER_TYPE, "Gamer Type",
GamerTypeOptions,
static_cast<int>(std::size(GamerTypeOptions)),
rightSideTextObjectAlignment);
}
void GamercardUI::OnDraw(ImGuiIO& io) {

View File

@@ -23,6 +23,7 @@ enum class DeviceType : uint32_t {
HDD = 1,
MU = 2, // support removed in 9199
ODD = 4,
TransferCable = 8,
USBMASS = 16, // Added in 8955
};

View File

@@ -124,7 +124,8 @@ dword_result_t XamProfileCreateEnumerator_entry(dword_t device_id,
auto e = new XStaticEnumerator<X_PROFILEENUMRESULT>(kernel_state(), 1);
auto result = e->Initialize(XUserIndexAny, 0xFE, 0x23001, 0x23003, 0);
auto result =
e->Initialize(XUserIndexAny, 0xFE, 0x23001, 0x23003, 0, 0x28, nullptr);
if (XFAILED(result)) {
return result;

View File

@@ -414,17 +414,18 @@ enum class XOnlineCountry : uint32_t {
};
enum class XContentType : uint32_t {
kFolder = 0xffffffff,
kInvalid = 0x00000000,
kSavedGame = 0x00000001,
kMarketplaceContent = 0x00000002,
kPublisher = 0x00000003,
kXbox360Title = 0x00001000,
kIptvDvr = 0x00001000,
kIptvPauseBuffer = 0x00002000,
kXNACommunity = 0x00003000,
kInstalledGame = 0x00004000,
kXboxTitle = 0x00005000,
kSocialTitle = 0x00006000,
kGamesOnDemand = 0x00007000,
kXbox360Title = 0x00007000,
kSUStoragePack = 0x00008000,
kAvatarItem = 0x00009000,
kProfile = 0x00010000,
@@ -452,16 +453,18 @@ enum class XContentType : uint32_t {
};
inline const std::map<XContentType, std::string> XContentTypeMap = {
{XContentType::kFolder, "Folder"},
{XContentType::kSavedGame, "Saved Game"},
{XContentType::kMarketplaceContent, "Marketplace Content"},
{XContentType::kPublisher, "Publisher"},
{XContentType::kXbox360Title, "Xbox 360 Title"},
{XContentType::kIptvDvr, "IPTV DVR"},
{XContentType::kIptvPauseBuffer, "IPTV Pause Buffer"},
{XContentType::kXNACommunity, "XNA Community"},
{XContentType::kInstalledGame, "Installed Game"},
{XContentType::kXboxTitle, "Xbox Title"},
{XContentType::kSocialTitle, "Social Title"},
{XContentType::kGamesOnDemand, "Game on Demand"},
{XContentType::kXbox360Title, "Xbox 360 Title"},
{XContentType::kSUStoragePack, "SU Storage Pack"},
{XContentType::kAvatarItem, "Avatar Item"},
{XContentType::kProfile, "Profile"},