summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremoose <abc@cock.li>2018-10-22 17:55:30 +0100
committergibbed <rick@gibbed.us>2018-11-23 16:38:34 -0600
commit958882a3ea8766798882e4675ef11cc6dcfb7ff7 (patch)
treeea6b272aa3e218e282a822b973bb25c5e04a47a6
parent65e8872dc15edea5408b16abed08c0930f1a7aee (diff)
[Kernel] Add ExConsoleGameRegion export variable (set to 0xFFFFFFFF)
-rw-r--r--src/xenia/kernel/xboxkrnl/xboxkrnl_module.cc8
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