diff --git a/Core/HLE/sceKernelMemory.cpp b/Core/HLE/sceKernelMemory.cpp index 664a2c92f2..e13224a79e 100644 --- a/Core/HLE/sceKernelMemory.cpp +++ b/Core/HLE/sceKernelMemory.cpp @@ -1074,6 +1074,7 @@ int sceKernelPrintf(const char *formatString) break; } + const char *s; switch (format[i]) { case '%': @@ -1082,7 +1083,8 @@ int sceKernelPrintf(const char *formatString) break; case 's': - result += Memory::GetCharPointer(PARAM(param++)); + s = Memory::GetCharPointer(PARAM(param++)); + result += s ? s : "(null)"; ++i; break; @@ -1114,6 +1116,12 @@ int sceKernelPrintf(const char *formatString) } break; + case 'p': + snprintf(tempStr, sizeof(tempStr), "%08x", PARAM(param++)); + result += tempStr; + ++i; + break; + default: supported = false; break;