[Module] Include XEX_SYSTEM_FLAGS in the log

This commit is contained in:
Adrian 2025-02-12 13:05:26 +00:00
parent b3d345610a
commit b36dc8fb6b
2 changed files with 52 additions and 0 deletions

View File

@ -614,6 +614,12 @@ void UserModule::Dump() {
case XEX_HEADER_SYSTEM_FLAGS: {
sb.AppendFormat(" XEX_HEADER_SYSTEM_FLAGS: {:08X}\n",
static_cast<uint32_t>(opt_header.value));
for (const auto& entry : xex2_system_flags_map) {
if (opt_header.value & entry.first) {
sb.AppendFormat(" {}\n", entry.second);
}
}
} break;
case XEX_HEADER_EXECUTION_INFO: {
sb.Append(" XEX_HEADER_EXECUTION_INFO:\n");

View File

@ -11,6 +11,7 @@
#define XENIA_KERNEL_UTIL_XEX2_INFO_H_
#include <cstdint>
#include <unordered_map>
#include "xenia/base/byte_order.h"
@ -637,6 +638,51 @@ struct X_IMAGE_EXPORT_DIRECTORY {
uint32_t AddressOfNameOrdinals; // RVA from base of image
};
const std::unordered_map<uint32_t, std::string> xex2_system_flags_map = {
{XEX_SYSTEM_NO_FORCED_REBOOT, "XEX_SYSTEM_NO_FORCED_REBOOT"},
{XEX_SYSTEM_FOREGROUND_TASKS, "XEX_SYSTEM_FOREGROUND_TASKS"},
{XEX_SYSTEM_NO_ODD_MAPPING, "XEX_SYSTEM_NO_ODD_MAPPING"},
{XEX_SYSTEM_HANDLE_MCE_INPUT, "XEX_SYSTEM_HANDLE_MCE_INPUT"},
{XEX_SYSTEM_RESTRICTED_HUD_FEATURES, "XEX_SYSTEM_RESTRICTED_HUD_FEATURES"},
{XEX_SYSTEM_HANDLE_GAMEPAD_DISCONNECT,
"XEX_SYSTEM_HANDLE_GAMEPAD_DISCONNECT"},
{XEX_SYSTEM_INSECURE_SOCKETS, "XEX_SYSTEM_INSECURE_SOCKETS"},
{XEX_SYSTEM_XBOX1_INTEROPERABILITY, "XEX_SYSTEM_XBOX1_INTEROPERABILITY"},
{XEX_SYSTEM_DASH_CONTEXT, "XEX_SYSTEM_DASH_CONTEXT"},
{XEX_SYSTEM_USES_GAME_VOICE_CHANNEL, "XEX_SYSTEM_USES_GAME_VOICE_CHANNEL"},
{XEX_SYSTEM_PAL50_INCOMPATIBLE, "XEX_SYSTEM_PAL50_INCOMPATIBLE"},
{XEX_SYSTEM_INSECURE_UTILITY_DRIVE, "XEX_SYSTEM_INSECURE_UTILITY_DRIVE"},
{XEX_SYSTEM_XAM_HOOKS, "XEX_SYSTEM_XAM_HOOKS"},
{XEX_SYSTEM_ACCESS_PII, "XEX_SYSTEM_ACCESS_PII"},
{XEX_SYSTEM_CROSS_PLATFORM_SYSTEM_LINK,
"XEX_SYSTEM_CROSS_PLATFORM_SYSTEM_LINK"},
{XEX_SYSTEM_MULTIDISC_SWAP, "XEX_SYSTEM_MULTIDISC_SWAP"},
{XEX_SYSTEM_MULTIDISC_INSECURE_MEDIA,
"XEX_SYSTEM_MULTIDISC_INSECURE_MEDIA"},
{XEX_SYSTEM_AP25_MEDIA, "XEX_SYSTEM_AP25_MEDIA"},
{XEX_SYSTEM_NO_CONFIRM_EXIT, "XEX_SYSTEM_NO_CONFIRM_EXIT"},
{XEX_SYSTEM_ALLOW_BACKGROUND_DOWNLOAD,
"XEX_SYSTEM_ALLOW_BACKGROUND_DOWNLOAD"},
{XEX_SYSTEM_CREATE_PERSISTABLE_RAMDRIVE,
"XEX_SYSTEM_CREATE_PERSISTABLE_RAMDRIVE"},
{XEX_SYSTEM_INHERIT_PERSISTENT_RAMDRIVE,
"XEX_SYSTEM_INHERIT_PERSISTENT_RAMDRIVE"},
{XEX_SYSTEM_ALLOW_HUD_VIBRATION, "XEX_SYSTEM_ALLOW_HUD_VIBRATION"},
{XEX_SYSTEM_ACCESS_UTILITY_PARTITIONS,
"XEX_SYSTEM_ACCESS_UTILITY_PARTITIONS"},
{XEX_SYSTEM_IPTV_INPUT_SUPPORTED, "XEX_SYSTEM_IPTV_INPUT_SUPPORTED"},
{XEX_SYSTEM_PREFER_BIG_BUTTON_INPUT, "XEX_SYSTEM_PREFER_BIG_BUTTON_INPUT"},
{XEX_SYSTEM_ALLOW_EXTENDED_SYSTEM_RESERVATION,
"XEX_SYSTEM_ALLOW_EXTENDED_SYSTEM_RESERVATION"},
{XEX_SYSTEM_MULTIDISC_CROSS_TITLE, "XEX_SYSTEM_MULTIDISC_CROSS_TITLE"},
{XEX_SYSTEM_INSTALL_INCOMPATIBLE, "XEX_SYSTEM_INSTALL_INCOMPATIBLE"},
{XEX_SYSTEM_ALLOW_AVATAR_GET_METADATA_BY_XUID,
"XEX_SYSTEM_ALLOW_AVATAR_GET_METADATA_BY_XUID"},
{XEX_SYSTEM_ALLOW_CONTROLLER_SWAPPING,
"XEX_SYSTEM_ALLOW_CONTROLLER_SWAPPING"},
{XEX_SYSTEM_DASH_EXTENSIBILITY_MODULE,
"XEX_SYSTEM_DASH_EXTENSIBILITY_MODULE"}};
} // namespace xe
#endif // XENIA_KERNEL_UTIL_XEX2_INFO_H_