diff --git a/Core/HLE/sceKernelModule.cpp b/Core/HLE/sceKernelModule.cpp index 40abb0bf55..ad92eed4dd 100644 --- a/Core/HLE/sceKernelModule.cpp +++ b/Core/HLE/sceKernelModule.cpp @@ -3312,6 +3312,10 @@ int __KernelStartModule(SceUID moduleId, u32 argsize, u32 argAddr, u32 returnVal } else if (entryAddr == 0 || entryAddr == (u32)-1) { INFO_LOG(Log::sceModule, "__KernelStartModule(%d,asize=%08x,aptr=%08x,retptr=%08x): no entry address", moduleId, argsize, argAddr, returnValueAddr); module->nm.status = MODULE_STATUS_STARTED; + // The status is still set to 0 (modules/nostart). R-Type Tactics gives up on its fonts otherwise. + if (returnValueAddr) { + Memory::WriteOrException_U32(0, returnValueAddr); + } } else { ERROR_LOG(Log::sceModule, "__KernelStartModule(%d,asize=%08x,aptr=%08x,retptr=%08x): invalid entry address", moduleId, argsize, argAddr, returnValueAddr); return -1; diff --git a/pspautotests b/pspautotests index 33e5d3876c..3ccc35c76b 160000 --- a/pspautotests +++ b/pspautotests @@ -1 +1 @@ -Subproject commit 33e5d3876c72fab5cfa98e48d2b81a856770d6e0 +Subproject commit 3ccc35c76b045824d3ba4ed17839df3f1711bf8e diff --git a/test.py b/test.py index 23b220c421..aa861faabc 100755 --- a/test.py +++ b/test.py @@ -360,6 +360,7 @@ tests_good = [ "modules/cutrel/kernel/cutrel", "modules/idlist/idlist", "modules/loadrace/loadrace", + "modules/nostart/nostart", "modules/startoptions/startoptions", "modules/unresolved/unresolved", "net/inet/blocking",