ReXGlue SDK
Loading...
Searching...
No Matches
xex.h File Reference
#include <rex/assert.h>
#include <rex/platform.h>
#include <rex/types.h>

Go to the source code of this file.

Classes

struct  rex::kernel::XEXGameRatings
struct  rex::kernel::XEXFileBasicCompressionBlock
struct  rex::kernel::XEXFileBasicCompressionInfo
struct  rex::kernel::XEXCompressedBlockInfo
struct  rex::kernel::XEXFileNormalCompressionInfo
struct  rex::kernel::XEXOptFileFormatInfo
union  rex::kernel::XEXVersion
struct  rex::kernel::XEXOptLANKey
struct  rex::kernel::XEXOptBoundPath
struct  rex::kernel::XEXOptStaticLibrary
struct  rex::kernel::XEXOptStaticLibraries
struct  rex::kernel::XEXOptOriginalPEName
struct  rex::kernel::XEXOptDataDirectory
struct  rex::kernel::XEXOptTLSInfo
struct  rex::kernel::XEXResource
struct  rex::kernel::XEXOptResourceInfo
struct  rex::kernel::XEXDeltaPatch
struct  rex::kernel::XEXOptDeltaPatchDescriptor
struct  rex::kernel::XEXOptExecutionInfo
struct  rex::kernel::XEXOptImportLibraries
struct  rex::kernel::XEXImportLibraryHeader
struct  rex::kernel::XEXOptU32Words
struct  rex::kernel::XEXOptHeader
struct  rex::kernel::XEXHeader
struct  rex::kernel::XEXPageDescriptor
struct  rex::kernel::XEXSecurityInfoHeader
struct  rex::kernel::XEX1SecurityInfo
struct  rex::kernel::XEXExportTable
struct  rex::kernel::X_IMAGE_EXPORT_DIRECTORY

Namespaces

namespace  rex
namespace  rex::kernel

Enumerations

enum  rex::kernel::XEXSectionType { rex::kernel::kXEXSectionCode = 1 , rex::kernel::kXEXSectionData = 2 , rex::kernel::kXEXSectionReadOnlyData = 3 }
enum  rex::kernel::XEXImageFlags : u32 {
  rex::kernel::kXEXImageManufacturingUtility = 0x00000002 , rex::kernel::kXEXImageManufacturingSupportTools = 0x00000004 , rex::kernel::kXEXImageXGD2MediaOnly = 0x00000008 , rex::kernel::kXEXImageCardeaKey = 0x00000100 ,
  rex::kernel::kXEXImageXeikaKey = 0x00000200 , rex::kernel::kXEXImageUserModeTitle = 0x00000400 , rex::kernel::kXEXImageUserModeSystem = 0x00000800 , rex::kernel::kXEXImageOrange0 = 0x00001000 ,
  rex::kernel::kXEXImageOrange1 = 0x00002000 , rex::kernel::kXEXImageOrange2 = 0x00004000 , rex::kernel::kXEXImageIPTVSignupApplication = 0x00010000 , rex::kernel::kXEXImageIPTVTitleApplication = 0x00020000 ,
  rex::kernel::kXEXImageKeyVaultPrivilegesRequired = 0x04000000 , rex::kernel::kXEXImageOnlineActivationRequired = 0x08000000 , rex::kernel::kXEXImagePageSize4KB = 0x10000000 , rex::kernel::kXEXImageRegionFree = 0x20000000 ,
  rex::kernel::kXEXImageRevocationCheckOptional = 0x40000000 , rex::kernel::kXEXImageRevocationCheckRequired = 0x80000000
}
enum  XEXMediaFlags : u32 {
  kXEXMediaHardDisk = 0x00000001 , kXEXMediaDVDX2 = 0x00000002 , kXEXMediaDVDCD = 0x00000004 , kXEXMediaDVD5 = 0x00000008 ,
  kXEXMediaDVD9 = 0x00000010 , kXEXMediaSystemFlash = 0x00000020 , kXEXMediaMemoryUnit = 0x00000080 , kXEXMediaUSBMassStorageDevice = 0x00000100 ,
  kXEXMediaNetwork = 0x00000200 , kXEXMediaDirectFromMemory = 0x00000400 , kXEXMediaRAMDrive = 0x00000800 , kXEXMediaSVOD = 0x00001000 ,
  kXEXMediaInsecurePackage = 0x01000000 , kXEXMediaSaveGamePackage = 0x02000000 , kXEXMediaLocallySignedPackage = 0x04000000 , kXEXMediaLiveSignedPackage = 0x08000000 ,
  kXEXMediaXboxPackage = 0x10000000
}
enum  rex::kernel::XEXRegionFlags : u32 {
  rex::kernel::kXEXRegionNTSCU = 0x000000FF , rex::kernel::kXEXRegionNTSCJ = 0x0000FF00 , rex::kernel::kXEXRegionNTSCJJapan = 0x00000100 , rex::kernel::kXEXRegionNTSCJChina = 0x00000200 ,
  rex::kernel::kXEXRegionPAL = 0x00FF0000 , rex::kernel::kXEXRegionPALAUNZ = 0x00010000 , rex::kernel::kXEXRegionOther = 0xFF000000 , kXEXRegionAll = 0xFFFFFFFF
}
enum  XEXModuleFlags : u32 {
  kXEXModuleTitle = 0x00000001 , kXEXModuleExportsToTitle = 0x00000002 , kXEXModuleSystemDebugger = 0x00000004 , kXEXModuleDLLModule = 0x00000008 ,
  kXEXModuleModulePatch = 0x00000010 , kXEXModulePatchFull = 0x00000020 , kXEXModulePatchDelta = 0x00000040 , kXEXModuleUserMode = 0x00000080
}
enum  XEXSystemFlags : u32 {
  kXEXSystemNoForcedReboot = 0x00000001 , kXEXSystemForegroundTasks = 0x00000002 , kXEXSystemNoODDMapping = 0x00000004 , kXEXSystemHandleMCEInput = 0x00000008 ,
  kXEXSystemRestrictedHUDFeatures = 0x00000010 , kXEXSystemHandleGamepadDisconnect = 0x00000020 , kXEXSystemInsecureSockets = 0x00000040 , kXEXSystemXbox1Interoperability = 0x00000080 ,
  kXEXSystemDashContext = 0x00000100 , kXEXSystemUsesGameVoiceChannel = 0x00000200 , kXEXSystemPAL50Incompatible = 0x00000400 , kXEXSystemInsecureUtilityDrive = 0x00000800 ,
  kXEXSystemXAMHooks = 0x00001000 , kXEXSystemAccessPII = 0x00002000 , kXEXSystemCrossPlatformSystemLink = 0x00004000 , kXEXSystemMultiDiscSwap = 0x00008000 ,
  kXEXSystemMultiDiscInsecureMedia = 0x00010000 , kXEXSystemAP25Media = 0x00020000 , kXEXSystemNoConfirmExit = 0x00040000 , kXEXSystemAllowBackgroundDownload = 0x00080000 ,
  kXEXSystemCreatePersistableRAMDrive = 0x00100000 , kXEXSystemInheritPersistentRAMDrive = 0x00200000 , kXEXSystemAllowHUDVibration = 0x00400000 , kXEXSystemAccessUtilityPartitions = 0x00800000 ,
  kXEXSystemIPTVInputSupported = 0x01000000 , kXEXSystemPreferBigButtonInput = 0x02000000 , kXEXSystemAllowExtendedSystemReservation = 0x04000000 , kXEXSystemMultiDiscCrossTitle = 0x08000000 ,
  kXEXSystemInstallIncompatible = 0x10000000 , kXEXSystemAllowAvatarGetMetadataByXUID = 0x20000000 , kXEXSystemAllowControllerSwapping = 0x40000000 , kXEXSystemDashExtensibilityModule = 0x80000000
}
enum  rex::kernel::XEXRatingESRBValue : u32 {
  kXEXRatingESRBEC = 0x00 , kXEXRatingESRBE = 0x02 , kXEXRatingESRBE10 = 0x04 , kXEXRatingESRBT = 0x06 ,
  kXEXRatingESRBM = 0x08 , kXEXRatingESRBAO = 0x0E , kXEXRatingESRBUnrated = 0xFF
}
enum  rex::kernel::XEXRatingPEGIValue : u32 {
  kXEXRatingPEGI3Plus = 0 , kXEXRatingPEGI7Plus = 4 , kXEXRatingPEGI12Plus = 9 , kXEXRatingPEGI16Plus = 13 ,
  kXEXRatingPEGI18Plus = 14 , kXEXRatingPEGIUnrated = 0xFF
}
enum  rex::kernel::XEXRatingPEGIFIValue : u32 {
  kXEXRatingPEGIFI3Plus = 0 , kXEXRatingPEGIFI7Plus = 4 , kXEXRatingPEGIFI11Plus = 8 , kXEXRatingPEGIFI15Plus = 12 ,
  kXEXRatingPEGIFI18Plus = 14 , kXEXRatingPEGIFIUnrated = 0xFF
}
enum  rex::kernel::XEXRatingPEGIPTValue : u32 {
  kXEXRatingPEGIPT4Plus = 1 , kXEXRatingPEGIPT6Plus = 3 , kXEXRatingPEGIPT12Plus = 9 , kXEXRatingPEGIPT16Plus = 13 ,
  kXEXRatingPEGIPT18Plus = 14 , kXEXRatingPEGIPTUnrated = 0xFF
}
enum  rex::kernel::XEXRatingBBFCValue : u32 {
  kXEXRatingBBFCUniversal = 1 , kXEXRatingBBFCPG = 5 , kXEXRatingBBFC3Plus = 0 , kXEXRatingBBFC7Plus = 4 ,
  kXEXRatingBBFC12Plus = 9 , kXEXRatingBBFC15Plus = 12 , kXEXRatingBBFC16Plus = 13 , kXEXRatingBBFC18Plus = 14 ,
  kXEXRatingBBFCUnrated = 0xFF
}
enum  rex::kernel::XEXRatingCEROValue : u32 {
  kXEXRatingCEROA = 0 , kXEXRatingCEROB = 2 , kXEXRatingCEROC = 4 , kXEXRatingCEROD = 6 ,
  kXEXRatingCEROZ = 8 , kXEXRatingCEROUnrated = 0xFF
}
enum  rex::kernel::XEXRatingUSKValue : u32 {
  kXEXRatingUSKAll = 0 , kXEXRatingUSK6Plus = 2 , kXEXRatingUSK12Plus = 4 , kXEXRatingUSK16Plus = 6 ,
  kXEXRatingUSK18Plus = 8 , kXEXRatingUSKUnrated = 0xFF
}
enum  rex::kernel::XEXRatingOFLCAUValue : u32 {
  kXEXRatingOFLCAUG = 0 , kXEXRatingOFLCAUPG = 2 , kXEXRatingOFLCAUM = 4 , kXEXRatingOFLCAUMA15Plus = 6 ,
  kXEXRatingOFLCAUUnrated = 0xFF
}
enum  rex::kernel::XEXRatingOFLCNZValue : u32 {
  kXEXRatingOFLCNZG = 0 , kXEXRatingOFLCNZPG = 2 , kXEXRatingOFLCNZM = 4 , kXEXRatingOFLCNZMA15Plus = 6 ,
  kXEXRatingOFLCNZUnrated = 0xFF
}
enum  rex::kernel::XEXRatingKMRBValue : u32 {
  kXEXRatingKMRBAll = 0 , kXEXRatingKMRB12Plus = 2 , kXEXRatingKMRB15Plus = 4 , kXEXRatingKMRB18Plus = 6 ,
  kXEXRatingKMRBUnrated = 0xFF
}
enum  rex::kernel::XEXRatingBrazilValue : u32 {
  kXEXRatingBrazilAll = 0 , kXEXRatingBrazil12Plus = 2 , kXEXRatingBrazil14Plus = 4 , kXEXRatingBrazil16Plus = 5 ,
  kXEXRatingBrazil18Plus = 8 , kXEXRatingBrazilUnrated = 0xFF
}
enum  rex::kernel::XEXRatingFPBValue : u32 {
  kXEXRatingFPBAll = 0 , kXEXRatingFPBPG = 6 , kXEXRatingFPB10Plus = 7 , kXEXRatingFPB13Plus = 10 ,
  kXEXRatingFPB16Plus = 13 , kXEXRatingFPB18Plus = 14 , kXEXRatingFPBUnrated = 0xFF
}
enum  rex::kernel::XEXHeaderKey : u32 {
  kXEXHeaderResourceInfo = 0x000002FF , kXEXHeaderFileFormatInfo = 0x000003FF , kXEXHeaderDeltaPatchDescriptor = 0x000005FF , kXEXHeaderBaseReference = 0x00000405 ,
  kXEXHeaderBoundPath = 0x000080FF , kXEXHeaderDeviceId = 0x00008105 , kXEXHeaderOriginalBaseAddress = 0x00010001 , rex::kernel::kXEXHeaderEntryPoint = 0x00010100 ,
  rex::kernel::kXEXHeaderImageBaseAddress = 0x00010201 , kXEXHeaderImportLibraries = 0x000103FF , kXEXHeaderChecksumTimestamp = 0x00018002 , kXEXHeaderEnabledForCallCap = 0x00018102 ,
  kXEXHeaderEnabledForFastCap = 0x00018200 , kXEXHeaderOriginalPEName = 0x000183FF , kXEXHeaderStaticLibraries = 0x000200FF , kXEXHeaderTLSInfo = 0x00020104 ,
  rex::kernel::kXEXHeaderDefaultStackSize = 0x00020200 , rex::kernel::kXEXHeaderDefaultFilesystemCacheSize = 0x00020301 , rex::kernel::kXEXHeaderDefaultHeapSize = 0x00020401 , kXEXHeaderPageHeapSizeAndFlags = 0x00028002 ,
  kXEXHeaderSystemFlags = 0x00030000 , kXEXHeaderExecutionInfo = 0x00040006 , rex::kernel::kXEXHeaderTitleWorkspaceSize = 0x00040201 , kXEXHeaderGameRatings = 0x00040310 ,
  kXEXHeaderLANKey = 0x00040404 , kXEXHeaderXbox360Logo = 0x000405FF , kXEXHeaderMultiDiscMediaIDs = 0x000406FF , rex::kernel::kXEXHeaderAlternateTitleIDs = 0x000407FF ,
  kXEXHeaderAdditionalTitleMemory = 0x00040801 , rex::kernel::kXEXHeaderExportsByName = 0x00E10402
}
enum  XEXEncryptionType : u16 { kXEXEncryptionNone = 0 , kXEXEncryptionNormal = 1 }
enum  rex::kernel::XEXCompressionType : u16 { kXEXCompressionNone = 0 , rex::kernel::kXEXCompressionBasic = 1 , rex::kernel::kXEXCompressionNormal = 2 , rex::kernel::kXEXCompressionDelta = 3 }
enum  XEXApprovalType : u8 { kXEXApprovalUnapproved = 0 , kXEXApprovalPossible = 1 , kXEXApprovalApproved = 2 , kXEXApprovalExpired = 3 }

Detailed Description

License
BSD 3-Clause License See LICENSE file in the project root for full license text.
Remarks
Derived from Xenia's kernel/util/xex_module.cc (Ben Vanik, 2020).
Modified
Tom Clay, 2026 - Adapted for ReXGlue runtime
Remarks
Parts derived from Xenia (Ben Vanik, 2013).