From 4d22c216882fd251969a90c4af8dc656c894615f Mon Sep 17 00:00:00 2001 From: "Dr. Chat" Date: Sat, 31 Oct 2015 10:28:53 -0500 Subject: [PATCH] ExCreateThread: Flag 0x80 indicates we should return the thread pointer, not handle. --- src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc index 344409672..ab9f35d97 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_threading.cc @@ -139,7 +139,11 @@ SHIM_CALL ExCreateThread_shim(PPCContext* ppc_context, if (XSUCCEEDED(result)) { if (handle_ptr) { - SHIM_SET_MEM_32(handle_ptr, thread->handle()); + if (creation_flags & 0x80) { + SHIM_SET_MEM_32(handle_ptr, thread->guest_object()); + } else { + SHIM_SET_MEM_32(handle_ptr, thread->handle()); + } } if (thread_id_ptr) { SHIM_SET_MEM_32(thread_id_ptr, thread->thread_id());