[XConfig] Added enum for all config settings

This commit is contained in:
Gliniak
2025-05-20 22:41:27 +02:00
parent a79c00f67a
commit 97a45315e3
2 changed files with 162 additions and 23 deletions

View File

@@ -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<uint32_t>(value, 0);
break;
case 0x0009: // XCONFIG_USER_LANGUAGE
case XCONFIG_USER_LANGUAGE:
setting_size = 4;
xe::store_and_swap<uint32_t>(value, cvars::user_language);
break;
case 0x000A: // XCONFIG_USER_VIDEO_FLAGS
case XCONFIG_USER_VIDEO_FLAGS:
setting_size = 4;
xe::store_and_swap<uint32_t>(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<uint32_t>(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<uint32_t>(value, 0x40);
break;
case 0x000E: // XCONFIG_USER_COUNTRY
case XCONFIG_USER_COUNTRY:
setting_size = 1;
value[0] = static_cast<uint8_t>(cvars::user_country);
break;
case 0x000F: // XCONFIG_USER_PC_FLAGS
case XCONFIG_USER_PC_FLAGS:
setting_size = 1;
value[0] = static_cast<uint8_t>(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<int32_t>(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<int32_t>(value, 0);
}
break;
case 0x001B: // XCONFIG_USER_PC_HINT
case XCONFIG_USER_PC_HINT:
setting_size = 1;
value[0] = static_cast<uint8_t>(0);
break;
case 0x0029: // XCONFIG_USER_VIDEO_OUTPUT_BLACK_LEVELS
case XCONFIG_USER_VIDEO_OUTPUT_BLACK_LEVELS:
setting_size = 4;
xe::store_and_swap<uint32_t>(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<int16_t>(value, X_SCREENSAVER::ScreensaverOff);
break;
case 0x0002: // XCONFIG_CONSOLE_AUTO_SHUTDOWN
case XCONFIG_CONSOLE_AUTO_SHUT_OFF:
setting_size = 2;
xe::store_and_swap<int16_t>(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<uint32_t>(value, X_CAMERA_FLAGS::AutoAll);
break;
case 0x0007: // XCONFIG_CONSOLE_KEYBOARD_LAYOUT
case XCONFIG_CONSOLE_KEYBOARD_LAYOUT:
setting_size = 2;
xe::store_and_swap<int16_t>(value,
X_KEYBOARD_LAYOUT::KeyboardDefault);