diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.cc index d6cd1bd8a..5d1694d9b 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.cc @@ -76,7 +76,7 @@ X_STATUS xeExGetXConfigSetting(X_CONFIG_CATEGORY category, uint16_t setting, switch (category) { case XCONFIG_SECURED_CATEGORY: switch (setting) { - case 0x0002: // XCONFIG_SECURED_AV_REGION + case XCONFIG_SECURED_AV_REGION: setting_size = 4; switch (cvars::video_standard) { case 1: // NTSCM @@ -105,45 +105,45 @@ X_STATUS xeExGetXConfigSetting(X_CONFIG_CATEGORY category, uint16_t setting, break; case XCONFIG_USER_CATEGORY: switch (setting) { - case 0x0001: // XCONFIG_USER_TIME_ZONE_BIAS - case 0x0002: // XCONFIG_USER_TIME_ZONE_STD_NAME - case 0x0003: // XCONFIG_USER_TIME_ZONE_DLT_NAME - case 0x0004: // XCONFIG_USER_TIME_ZONE_STD_DATE - case 0x0005: // XCONFIG_USER_TIME_ZONE_DLT_DATE - case 0x0006: // XCONFIG_USER_TIME_ZONE_STD_BIAS - case 0x0007: // XCONFIG_USER_TIME_ZONE_DLT_BIAS + case XCONFIG_USER_TIME_ZONE_BIAS: + case XCONFIG_USER_TIME_ZONE_STD_NAME: + case XCONFIG_USER_TIME_ZONE_DLT_NAME: + case XCONFIG_USER_TIME_ZONE_STD_DATE: + case XCONFIG_USER_TIME_ZONE_DLT_DATE: + case XCONFIG_USER_TIME_ZONE_STD_BIAS: + case XCONFIG_USER_TIME_ZONE_DLT_BIAS: setting_size = 4; // TODO(benvanik): get this value. xe::store_and_swap(value, 0); break; - case 0x0009: // XCONFIG_USER_LANGUAGE + case XCONFIG_USER_LANGUAGE: setting_size = 4; xe::store_and_swap(value, cvars::user_language); break; - case 0x000A: // XCONFIG_USER_VIDEO_FLAGS + case XCONFIG_USER_VIDEO_FLAGS: setting_size = 4; xe::store_and_swap(value, cvars::widescreen ? X_VIDEO_FLAGS::Widescreen : X_VIDEO_FLAGS::RatioNormal); break; - case 0x000B: // XCONFIG_USER_AUDIO_FLAGS + case XCONFIG_USER_AUDIO_FLAGS: setting_size = 4; xe::store_and_swap(value, cvars::audio_flag); break; - case 0x000C: // XCONFIG_USER_RETAIL_FLAGS + case XCONFIG_USER_RETAIL_FLAGS: setting_size = 4; // TODO(benvanik): get this value. xe::store_and_swap(value, 0x40); break; - case 0x000E: // XCONFIG_USER_COUNTRY + case XCONFIG_USER_COUNTRY: setting_size = 1; value[0] = static_cast(cvars::user_country); break; - case 0x000F: // XCONFIG_USER_PC_FLAGS + case XCONFIG_USER_PC_FLAGS: setting_size = 1; value[0] = static_cast(0); break; - case 0x0014: // XCONFIG_USER_AV_COMPONENT_SCREENSZ + case XCONFIG_USER_AV_COMPONENT_SCREENSZ: setting_size = 4; // int16_t* value[2]; if (XHDTVResolution.find(cvars::internal_display_resolution) != @@ -155,7 +155,7 @@ X_STATUS xeExGetXConfigSetting(X_CONFIG_CATEGORY category, uint16_t setting, xe::store_and_swap(value, 0); } break; - case 0x0015: // XCONFIG_USER_AV_VGA_SCREENSZ + case XCONFIG_USER_AV_VGA_SCREENSZ: setting_size = 4; // int16_t* value[2]; if (XVGAResolution.find(cvars::internal_display_resolution) != @@ -167,11 +167,11 @@ X_STATUS xeExGetXConfigSetting(X_CONFIG_CATEGORY category, uint16_t setting, xe::store_and_swap(value, 0); } break; - case 0x001B: // XCONFIG_USER_PC_HINT + case XCONFIG_USER_PC_HINT: setting_size = 1; value[0] = static_cast(0); break; - case 0x0029: // XCONFIG_USER_VIDEO_OUTPUT_BLACK_LEVELS + case XCONFIG_USER_VIDEO_OUTPUT_BLACK_LEVELS: setting_size = 4; xe::store_and_swap(value, X_BLACK_LEVEL::LevelNormal); break; @@ -184,20 +184,20 @@ X_STATUS xeExGetXConfigSetting(X_CONFIG_CATEGORY category, uint16_t setting, break; case XCONFIG_CONSOLE_CATEGORY: switch (setting) { - case 0x0001: // XCONFIG_CONSOLE_SCREENSAVER + case XCONFIG_CONSOLE_SCREEN_SAVER: setting_size = 2; xe::store_and_swap(value, X_SCREENSAVER::ScreensaverOff); break; - case 0x0002: // XCONFIG_CONSOLE_AUTO_SHUTDOWN + case XCONFIG_CONSOLE_AUTO_SHUT_OFF: setting_size = 2; xe::store_and_swap(value, X_AUTO_SHUTDOWN::AutoShutdownOff); break; - case 0x0004: // XCONFIG_CONSOLE_CAMERA_SETTINGS + case XCONFIG_CONSOLE_CAMERA_SETTINGS: // Camera Flags are added together and last byte is always 0x1 setting_size = 4; xe::store_and_swap(value, X_CAMERA_FLAGS::AutoAll); break; - case 0x0007: // XCONFIG_CONSOLE_KEYBOARD_LAYOUT + case XCONFIG_CONSOLE_KEYBOARD_LAYOUT: setting_size = 2; xe::store_and_swap(value, X_KEYBOARD_LAYOUT::KeyboardDefault); diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.h b/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.h index 9b51948ba..c40caf1be 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.h +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.h @@ -28,7 +28,146 @@ enum X_CONFIG_CATEGORY : uint16_t { XCONFIG_CONSOLE_CATEGORY = 0x07, XCONFIG_DVD_CATEGORY = 0x08, XCONFIG_IPTV_CATEGORY = 0x09, - XCONFIG_SYSTEM_CATEGORY = 0x0A + XCONFIG_SYSTEM_CATEGORY = 0x0A, + XCONFIG_DEVKIT_CATEGORY = 0x0B +}; + +enum XCONFIG_STATIC_CATEGORY_ENTRIES : uint8_t { + XCONFIG_STATIC_FIRST_POWER_ON_DATE = 0x01, + XCONFIG_STATIC_SMC_CONFIG = 0x02 +}; + +enum XCONFIG_STATISTIC_CATEGORY_ENTRIES : uint8_t { + XCONFIG_STATISTICS_XUID_MAC_ADDRESS = 0x01, + XCONFIG_STATISTICS_XUID_COUNT = 0x02, + XCONFIG_STATISTICS_ODD_FAILURES = 0x03, + XCONFIG_STATISTICS_HDD_SMART_DATA = 0x04, + XCONFIG_STATISTICS_UEM_ERRORS = 0x05, + XCONFIG_STATISTICS_FPM_ERRORS = 0x06, + XCONFIG_STATISTICS_LAST_REPORT_TIME = 0x07, + XCONFIG_STATISTICS_BUG_CHECK_DATA = 0x08, + XCONFIG_STATISTICS_TEMPERATURE = 0x09, + XCONFIG_STATISTICS_XEKEYS_WRITE_FAILURE = 0x0A +}; + +enum XCONFIG_SECURED_CATEGORY_ENTRIES : uint8_t { + XCONFIG_SECURED_MAC_ADDRESS = 0x01, + XCONFIG_SECURED_AV_REGION = 0x02, + XCONFIG_SECURED_GAME_REGION = 0x03, + XCONFIG_SECURED_DVD_REGION = 0x04, + XCONFIG_SECURED_RESET_KEY = 0x05, + XCONFIG_SECURED_SYSTEM_FLAGS = 0x06, + XCONFIG_SECURED_POWER_MODE = 0x07, + XCONFIG_SECURED_ONLINE_NETWORK_ID = 0x08, + XCONFIG_SECURED_POWER_VCS_CONTROL = 0x09 +}; + +enum XCONFIG_USER_CATEGORY_ENTRIES : uint8_t { + XCONFIG_USER_TIME_ZONE_BIAS = 0x01, + XCONFIG_USER_TIME_ZONE_STD_NAME = 0x02, + XCONFIG_USER_TIME_ZONE_DLT_NAME = 0x03, + XCONFIG_USER_TIME_ZONE_STD_DATE = 0x04, + XCONFIG_USER_TIME_ZONE_DLT_DATE = 0x05, + XCONFIG_USER_TIME_ZONE_STD_BIAS = 0x06, + XCONFIG_USER_TIME_ZONE_DLT_BIAS = 0x07, + XCONFIG_USER_DEFAULT_PROFILE = 0x08, + XCONFIG_USER_LANGUAGE = 0x09, + XCONFIG_USER_VIDEO_FLAGS = 0x0A, + XCONFIG_USER_AUDIO_FLAGS = 0x0B, + XCONFIG_USER_RETAIL_FLAGS = 0x0C, + XCONFIG_USER_DEVKIT_FLAGS = 0x0D, + XCONFIG_USER_COUNTRY = 0x0E, + XCONFIG_USER_PC_FLAGS = 0x0F, + XCONFIG_USER_SMB_CONFIG = 0x10, + XCONFIG_USER_LIVE_PUID = 0x11, + XCONFIG_USER_LIVE_CREDENTIALS = 0x12, + XCONFIG_USER_AV_COMPOSITE_SCREENSZ = 0x13, + XCONFIG_USER_AV_COMPONENT_SCREENSZ = 0x14, + XCONFIG_USER_AV_VGA_SCREENSZ = 0x15, + XCONFIG_USER_PC_GAME = 0x16, + XCONFIG_USER_PC_PASSWORD = 0x17, + XCONFIG_USER_PC_MOVIE = 0x18, + XCONFIG_USER_PC_GAME_RATING = 0x19, + XCONFIG_USER_PC_MOVIE_RATING = 0x1A, + XCONFIG_USER_PC_HINT = 0x1B, + XCONFIG_USER_PC_HINT_ANSWER = 0x1C, + XCONFIG_USER_PC_OVERRIDE = 0x1D, + XCONFIG_USER_MUSIC_PLAYBACK_MODE = 0x1E, + XCONFIG_USER_MUSIC_VOLUME = 0x1F, + XCONFIG_USER_MUSIC_FLAGS = 0x20, + XCONFIG_USER_ARCADE_FLAGS = 0x21, + XCONFIG_USER_PC_VERSION = 0x22, + XCONFIG_USER_PC_TV = 0x23, + XCONFIG_USER_PC_TV_RATING = 0x24, + XCONFIG_USER_PC_EXPLICIT_VIDEO = 0x25, + XCONFIG_USER_PC_EXPLICIT_VIDEO_RATING = 0x26, + XCONFIG_USER_PC_UNRATED_VIDEO = 0x27, + XCONFIG_USER_PC_UNRATED_VIDEO_RATING = 0x28, + XCONFIG_USER_VIDEO_OUTPUT_BLACK_LEVELS = 0x29, + XCONFIG_USER_VIDEO_PLAYER_DISPLAY_MODE = 0x2A, + XCONFIG_USER_ALTERNATE_VIDEO_TIMING_ID = 0x2B, + XCONFIG_USER_VIDEO_DRIVER_OPTIONS = 0x2C, + XCONFIG_USER_MUSIC_UI_FLAGS = 0x2D, + XCONFIG_USER_VIDEO_MEDIA_SOURCE_TYPE = 0x2E, + XCONFIG_USER_MUSIC_MEDIA_SOURCE_TYPE = 0x2F, + XCONFIG_USER_PHOTO_MEDIA_SOURCE_TYPE = 0x30 +}; + +enum XCONFIG_XNET_CATEGORY_ENTRIES : uint8_t { XCONFIG_XNET_DATA = 0x01 }; + +enum XCONFIG_MEDIA_CENTER_CATEGORY_ENTRIES : uint8_t { + XCONFIG_MEDIA_CENTER_MEDIA_PLAYER = 0x01, + XCONFIG_MEDIA_CENTER_XESLED_VERSION = 0x02, + XCONFIG_MEDIA_CENTER_XESLED_TRUST_SECRET = 0x03, + XCONFIG_MEDIA_CENTER_XESLED_TRUST_CODE = 0x04, + XCONFIG_MEDIA_CENTER_XESLED_HOST_ID = 0x05, + XCONFIG_MEDIA_CENTER_XESLED_KEY = 0x06, + XCONFIG_MEDIA_CENTER_XESLED_HOST_MAC_ADDRESS = 0x07, + XCONFIG_MEDIA_CENTER_SERVER_UUID = 0x08, + XCONFIG_MEDIA_CENTER_SERVER_NAME = 0x09, + XCONFIG_MEDIA_CENTER_SERVER_FLAG = 0x0A +}; + +enum XCONFIG_CONSOLE_CATEGORY_ENTRIES : uint8_t { + XCONFIG_CONSOLE_SCREEN_SAVER = 0x01, + XCONFIG_CONSOLE_AUTO_SHUT_OFF = 0x02, + XCONFIG_CONSOLE_WIRELESS_SETTINGS = 0x03, + XCONFIG_CONSOLE_CAMERA_SETTINGS = 0x04, + XCONFIG_CONSOLE_PLAYTIMERDATA = 0x05, + XCONFIG_CONSOLE_MEDIA_DISABLEAUTOLAUNCH = 0x06, + XCONFIG_CONSOLE_KEYBOARD_LAYOUT = 0x07, + XCONFIG_CONSOLE_PC_TITLE_EXEMPTIONS = 0x08, + XCONFIG_CONSOLE_NUI = 0x09, + XCONFIG_CONSOLE_VOICE = 0x0A, + XCONFIG_CONSOLE_RETAIL_EX_FLAGS = 0x0B, + XCONFIG_CONSOLE_DASH_FIRST_USE_TUTORIAL_FLAGS = 0x0C, + XCONFIG_CONSOLE_TV_DIAGONAL_SIZE_IN_CM = 0x0D, + XCONFIG_CONSOLE_NETWORKSTORAGEDEVICE_SERIALNUMBER = 0x0E, + XCONFIG_CONSOLE_DISCOVERABLE = 0x0F, + XCONFIG_CONSOLE_LIVE_TV_PROVIDER = 0x10 +}; + +enum XCONFIG_DVD_CATEGORY_ENTRIES : uint8_t { + XCONFIG_DVD_VOLUME_ID = 0x01, + XCONFIG_DVD_BOOKMARK = 0x02 +}; + +enum XCONFIG_IPTV_CATEGORY_ENTRIES : uint8_t { + XCONFIG_IPTV_SERVICE_PROVIDER_NAME = 0x01, + XCONFIG_IPTV_PROVISIONING_SERVER_URL = 0x02, + XCONFIG_IPTV_SUPPORT_INFO = 0x03, + XCONFIG_IPTV_BOOTSTRAP_SERVER_URL = 0x04 +}; + +enum XCONFIG_SYSTEM_CATEGORY_ENTRIES : uint8_t { + XCONFIG_SYSTEM_ALARM_TIME = 0x01, + XCONFIG_SYSTEM_PREVIOUS_FLASH_VERSION = 0x02 +}; + +enum XCONFIG_DEVKIT_CATEGORY_ENTRIES : uint8_t { + XCONFIG_DEVKIT_USBD_ROOT_HUB_PORT_DISABLE_MASK = 0x01, + XCONFIG_DEVKIT_XAM_FEATURE_ENABLE_DISABLE_MASK = 0x02, + XCONFIG_DEVKIT_KIOSK_ID = 0x03 }; // XCONFIG_SECURED_AV_REGION