From 0de78eb3c4407cfedb8779422d96b7ee73fc19ed Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 13 May 2014 23:18:28 -0400 Subject: [PATCH] fixed thread reset to not set stack address --- src/core/hle/kernel/thread.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 95ef2c173d..c59d2a6893 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -417,7 +417,6 @@ void ThreadContext::reset() { for (int i = 0; i < 16; i++) { reg[i] = 0; } - reg[13] = Memory::SCRATCHPAD_VADDR_END; cpsr = 0; } @@ -464,6 +463,7 @@ Thread* __KernelCreateThread(UID& id, UID module_id, const char* name, u32 prior void __KernelResetThread(Thread *t, int lowest_priority) { t->context.reset(); t->context.pc = t->nt.entry_point; + t->context.reg[13] = t->nt.initial_stack; // If the thread would be better than lowestPriority, reset to its initial. Yes, kinda odd... if (t->nt.current_priority < lowest_priority) {