Files
Xenia-Canary/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.h
2025-05-31 12:00:47 +02:00

313 lines
9.3 KiB
C++

/**
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2025 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
#ifndef XENIA_KERNEL_XBOXKRNL_XBOXKRNL_XCONFIG_H_
#define XENIA_KERNEL_XBOXKRNL_XBOXKRNL_XCONFIG_H_
#include <cstdint>
#include <map>
namespace xe {
namespace kernel {
namespace xboxkrnl {
enum X_CONFIG_CATEGORY : uint16_t {
XCONFIG_STATIC_CATEGORY = 0x00,
XCONFIG_STATISTIC_CATEGORY = 0x01,
XCONFIG_SECURED_CATEGORY = 0x02,
XCONFIG_USER_CATEGORY = 0x03,
XCONFIG_XNET_MACHINE_ACCOUNT_CATEGORY = 0x04,
XCONFIG_XNET_PARAMETERS_CATEGORY = 0x05,
XCONFIG_MEDIA_CENTER_CATEGORY = 0x06,
XCONFIG_CONSOLE_CATEGORY = 0x07,
XCONFIG_DVD_CATEGORY = 0x08,
XCONFIG_IPTV_CATEGORY = 0x09,
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
enum X_AV_REGION : uint32_t {
NTSCM = 0x00400100,
NTSCJ = 0x00400200,
PAL = 0x00400400,
PAL_50 = 0x00800300,
};
// XCONFIG_USER_VIDEO_FLAGS
enum X_VIDEO_FLAGS : uint32_t {
RatioNormal = 0x00000000,
Widescreen = 0x00010000,
};
// XCONFIG_USER_AV_COMPONENT_SCREENSZ
const static std::map<uint32_t, int32_t> XHDTVResolution = {
{0, 0x028001E0}, // 480p
{8, 0x050002D0}, // 720p, always widescreen
{16, 0x07800438}, // 1080, interlaced added in 1888, always widescreen
};
// XCONFIG_USER_AV_COMPONENT_SCREENSZ
const static std::map<uint32_t, int32_t> XVGAResolution = {
// Existed since 1888
{0, 0x028001E0}, // 680x480
{5, 0x035001E0}, // 848x480
{6, 0x04000300}, // 1024x768
{8, 0x050002D0}, // 1280x720
{9, 0x05000300}, // 1280x768
{12, 0x05500300}, // 1360x768
// added in later Versions
{11, 0x05000400}, // 1280x1024
{13, 0x05A00384}, // 1440x900
{14, 0x0690041A}, // 1680x1050
{16, 0x07800438}, // 1920x1080
};
// XCONFIG_USER_AUDIO_FLAGS
enum X_AUDIO_FLAGS : uint32_t {
// Audio Mode Analog
DolbyProLogic = 0x00000001,
AnalogMono = 0x00000002,
// Audio Mode Digital
DigitalStereo = 0x00000000,
DolbyDigital = 0x00010000,
DolbyDigitalWithWMAPRO = 0x00030000,
// Special Flags
StereoBypass = 0x00000003,
LowLatency = 0x80000000,
};
// XCONFIG_USER_RETAIL_FLAGS
enum X_RETAIL_FLAGS : uint32_t {
// Clock
DSTOff = 0x00000002,
TwentyFourHourClock = 0x00000008,
// Startup
DashboardStartup = 0x00000080,
IPTVStartup = 0x00000800,
DiscStartup = 0x00002000,
MCXDownloaderStartup = 0x00020000,
// IPTV
IPTVEnabled = 0x00001000,
IPTVDVRENABLED = 0x00080000,
IPTVDisabled = 0x02000000,
// Kinect
KinectInitialized = 0x20000000,
KinectDisabled = 0x80000000,
// Other
DashboardInitialized = 0x00000040,
BackgroundDownloadOn = 0x00010000,
};
// XCONFIG_USER_PC_FLAGS
enum X_PC_FLAGS : uint8_t {
XBLAllowed = 0x01,
XBLMembershipCreationAllowed = 0x02,
PCEnabled = 0x80,
};
enum X_PC_HINTS : uint8_t {
FavoriteFictionalCharactar = 0,
FavoritePersonFromHistory = 1,
FavoriteChildhoodBookOrStory = 2,
FavoriteMovie = 3,
FavoriteFood = 4
};
// XCONFIG_USER_VIDEO_OUTPUT_BLACK_LEVELS
enum X_BLACK_LEVEL : uint32_t {
High = 0x00000100,
Intermediate = 0x00000200,
LevelNormal = 0x00000300,
};
// XCONFIG_CONSOLE_SCREENSAVER
enum X_SCREENSAVER : uint32_t {
ScreensaverOn = 0x000A,
ScreensaverOff = 0x1000,
};
// XCONFIG_CONSOLE_AUTO_SHUTDOWN
enum X_AUTO_SHUTDOWN : uint32_t {
AutoShutdownOff = 0x0000,
AutoShutdownOneHr = 0x003C,
AutoShutdownSixHr = 0x0168,
};
// XCONFIG_CONSOLE_CAMERA_SETTINGS
enum X_CAMERA_FLAGS : uint32_t {
// Room
RoomAuto = 0x00000000,
DarkWall = 0x00000001,
LightWall = 0x00000002,
// Lighting
LightingAuto = 0x00000000,
Incandescent = 0x00000004,
Flourescent = 0x00000008,
Daylight = 0x0000000C,
// Flourescent Anti-Flicker
AntiFlickerAuto = 0x00000000,
AntiFlickerOn = 0x00000001,
AntiFlickerOff = 0x00000002,
// Default
AutoAll = 0x00000001,
};
// XCONFIG_CONSOLE_KEYBOARD_LAYOUT
enum X_KEYBOARD_LAYOUT : uint16_t {
KeyboardDefault = 0x0000,
EnglishQWERTY = 0x0001,
};
} // namespace xboxkrnl
} // namespace kernel
} // namespace xe
#endif // XENIA_KERNEL_XBOXKRNL_XBOXKRNL_XCONFIG_H_