diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index cda295560a..399417a050 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -371,6 +371,14 @@ public: // What's this 512? context.r[MIPS_REG_K0] = context.r[MIPS_REG_SP] - 256; context.r[MIPS_REG_SP] -= 512; + u32 k0 = context.r[MIPS_REG_K0]; + Memory::Memset(k0, 0, 0x100); + Memory::Write_U32(nt.initialStack, k0 + 0xc0); + Memory::Write_U32(GetUID(), k0 + 0xca); + Memory::Write_U32(0xffffffff, k0 + 0xf8); + Memory::Write_U32(0xffffffff, k0 + 0xfc); + + Memory::Write_U32(GetUID(), nt.initialStack); return true; } diff --git a/pspautotests b/pspautotests index 3f1dc654e6..a35333fa37 160000 --- a/pspautotests +++ b/pspautotests @@ -1 +1 @@ -Subproject commit 3f1dc654e66c37098169881e7d6437db3157dff8 +Subproject commit a35333fa37a6439ef6623fad7b66f19115ccf724 diff --git a/test.py b/test.py index 557ce0202a..306f9e442d 100755 --- a/test.py +++ b/test.py @@ -74,6 +74,7 @@ tests_good = [ "threads/events/refer/refer", "threads/events/set/set", "threads/events/wait/wait", + "threads/k0/k0", "threads/lwmutex/create/create", "threads/lwmutex/delete/delete", "threads/lwmutex/lock/lock",