From 331ddf79bf96e294702ecf310f62a618dd65ef63 Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Wed, 13 May 2026 20:07:46 +0200 Subject: [PATCH] [Kernel] KeGetImagePageTableEntry: Added bit 0 set According to dashboards 14xxx and higher it is required that return of this call will have that bit set. --- src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc index aac21eba2..dbeeb22a1 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_memory.cc @@ -747,6 +747,11 @@ dword_result_t KeGetImagePageTableEntry_entry(dword_t address, if (image_heap->page_size() < 65536) { returned_value |= 0x40000000; + + // TODO(Gliniak): Verify if 1 is set when page is marked as read-only. For + // now there is not enough data, but dashboard 14xxx and above requires that + // return from this call will have bit 0 set. + returned_value |= 1; } return returned_value & 0x400FFFFF; // this is actually the mask it applies