diff options
| author | emoose <abc@cock.li> | 2018-10-22 17:55:30 +0100 |
|---|---|---|
| committer | gibbed <rick@gibbed.us> | 2018-11-23 16:38:34 -0600 |
| commit | 958882a3ea8766798882e4675ef11cc6dcfb7ff7 (patch) | |
| tree | ea6b272aa3e218e282a822b973bb25c5e04a47a6 | |
| parent | 65e8872dc15edea5408b16abed08c0930f1a7aee (diff) | |
[Kernel] Add ExConsoleGameRegion export variable (set to 0xFFFFFFFF)
| -rw-r--r-- | src/xenia/kernel/xboxkrnl/xboxkrnl_module.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_module.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_module.cc index 706c58ca8..f38d27d35 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_module.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_module.cc @@ -159,6 +159,14 @@ XboxkrnlModule::XboxkrnlModule(Emulator* emulator, KernelState* kernel_state) xe::store_and_swap<uint8_t>(lpXboxHardwareInfo + 4, 0x06); // cpu count // Remaining 11b are zeroes? + // ExConsoleGameRegion, probably same values as keyvault region uses? + // Just return all 0xFF, should satisfy anything that checks it + uint32_t pExConsoleGameRegion = memory_->SystemHeapAlloc(4); + auto lpExConsoleGameRegion = memory_->TranslateVirtual(pExConsoleGameRegion); + export_resolver_->SetVariableMapping( + "xboxkrnl.exe", ordinals::ExConsoleGameRegion, pExConsoleGameRegion); + xe::store<uint32_t>(lpExConsoleGameRegion, 0xFFFFFFFF); + // XexExecutableModuleHandle (?**) // Games try to dereference this to get a pointer to some module struct. // So far it seems like it's just in loader code, and only used to look up |
