/** ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** * Copyright 2014 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ #include "xenia/kernel/user_profile.h" namespace xe { namespace kernel { UserProfile::UserProfile() { xuid_ = 0xBABEBABEBABEBABE; name_ = "User"; // http://cs.rin.ru/forum/viewtopic.php?f=38&t=60668&hilit=gfwl+live&start=195 // https://github.com/arkem/py360/blob/master/py360/constants.py // XPROFILE_GAMER_YAXIS_INVERSION AddSetting(std::make_unique(0x10040002, 0)); // XPROFILE_OPTION_CONTROLLER_VIBRATION AddSetting(std::make_unique(0x10040003, 3)); // XPROFILE_GAMERCARD_ZONE AddSetting(std::make_unique(0x10040004, 0)); // XPROFILE_GAMERCARD_REGION AddSetting(std::make_unique(0x10040005, 0)); // XPROFILE_GAMERCARD_CRED AddSetting(std::make_unique(0x10040006, 0xFA)); // XPROFILE_GAMERCARD_REP AddSetting(std::make_unique(0x5004000B, 0.0f)); // XPROFILE_OPTION_VOICE_MUTED AddSetting(std::make_unique(0x1004000C, 0)); // XPROFILE_OPTION_VOICE_THRU_SPEAKERS AddSetting(std::make_unique(0x1004000D, 0)); // XPROFILE_OPTION_VOICE_VOLUME AddSetting(std::make_unique(0x1004000E, 0x64)); // XPROFILE_GAMERCARD_MOTTO AddSetting(std::make_unique(0x402C0011, L"")); // XPROFILE_GAMERCARD_TITLES_PLAYED AddSetting(std::make_unique(0x10040012, 1)); // XPROFILE_GAMERCARD_ACHIEVEMENTS_EARNED AddSetting(std::make_unique(0x10040013, 0)); // XPROFILE_GAMER_DIFFICULTY AddSetting(std::make_unique(0x10040015, 0)); // XPROFILE_GAMER_CONTROL_SENSITIVITY AddSetting(std::make_unique(0x10040018, 0)); // Preferred color 1 AddSetting(std::make_unique(0x1004001D, 0xFFFF0000u)); // Preferred color 2 AddSetting(std::make_unique(0x1004001E, 0xFF00FF00u)); // XPROFILE_GAMER_ACTION_AUTO_AIM AddSetting(std::make_unique(0x10040022, 1)); // XPROFILE_GAMER_ACTION_AUTO_CENTER AddSetting(std::make_unique(0x10040023, 0)); // XPROFILE_GAMER_ACTION_MOVEMENT_CONTROL AddSetting(std::make_unique(0x10040024, 0)); // XPROFILE_GAMER_RACE_TRANSMISSION AddSetting(std::make_unique(0x10040026, 0)); // XPROFILE_GAMER_RACE_CAMERA_LOCATION AddSetting(std::make_unique(0x10040027, 0)); // XPROFILE_GAMER_RACE_BRAKE_CONTROL AddSetting(std::make_unique(0x10040028, 0)); // XPROFILE_GAMER_RACE_ACCELERATOR_CONTROL AddSetting(std::make_unique(0x10040029, 0)); // XPROFILE_GAMERCARD_TITLE_CRED_EARNED AddSetting(std::make_unique(0x10040038, 0)); // XPROFILE_GAMERCARD_TITLE_ACHIEVEMENTS_EARNED AddSetting(std::make_unique(0x10040039, 0)); // If we set this, games will try to get it. // XPROFILE_GAMERCARD_PICTURE_KEY AddSetting( std::make_unique(0x4064000F, L"gamercard_picture_key")); std::vector zeros; zeros.resize(1000); // XPROFILE_TITLE_SPECIFIC1 AddSetting(std::make_unique(0x63E83FFF, zeros)); // XPROFILE_TITLE_SPECIFIC2 AddSetting(std::make_unique(0x63E83FFE, zeros)); // XPROFILE_TITLE_SPECIFIC3 AddSetting(std::make_unique(0x63E83FFD, zeros)); } void UserProfile::AddSetting(std::unique_ptr setting) { settings_.insert({setting->setting_id, setting.get()}); setting_list_.push_back(std::move(setting)); } UserProfile::Setting* UserProfile::GetSetting(uint32_t setting_id) { const auto& it = settings_.find(setting_id); if (it == settings_.end()) { return nullptr; } return it->second; } } // namespace kernel } // namespace xe