[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;