From bdeae25353966a64f7a28698ba79b5441e036650 Mon Sep 17 00:00:00 2001 From: gibbed Date: Sun, 22 Nov 2020 15:46:56 -0600 Subject: [PATCH] [Kernel] Add comment about Shadowrun bug. [Kernel] Add comment about Shadowrun thread name bug and a bonus lint fix. --- src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc index 85a27b1c2..a3e92c55f 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_debug.cc @@ -47,10 +47,13 @@ void HandleSetThreadName(pointer_t record) { return; } + // Shadowrun (and its demo) has a bug where it ends up passing freed memory + // for the name, so at the point of SetThreadName it's filled with junk. + // TODO(gibbed): cvar for thread name encoding for conversion, some games use // SJIS and there's no way to automatically know this. - auto name = - std::string(kernel_memory()->TranslateVirtual(thread_info->name_ptr)); + auto name = std::string( + kernel_memory()->TranslateVirtual(thread_info->name_ptr)); std::replace_if( name.begin(), name.end(), [](auto c) { return c < 32 || c > 127; }, '?');