From 634b9dba9bec07c49a474d929b0dce58cc011bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sun, 14 Jun 2026 14:45:11 +0200 Subject: [PATCH 1/2] Add some new NIDs, update some comments --- Core/HLE/sceKernel.cpp | 3 ++- Core/HLE/sceKernelThread.cpp | 1 + Core/HLE/sceUtility.cpp | 4 ++++ Core/HLE/sceVaudio.cpp | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Core/HLE/sceKernel.cpp b/Core/HLE/sceKernel.cpp index 952f04c47c..ddae1e157b 100644 --- a/Core/HLE/sceKernel.cpp +++ b/Core/HLE/sceKernel.cpp @@ -94,7 +94,6 @@ #include "sceOpenPSID.h" #include "sceHttp.h" #include "Core/Util/PPGeDraw.h" -#include "sceHttp.h" /* 17: [MIPS32 R4K 00000000 ]: Loader: Type: 1 Vaddr: 00000000 Filesz: 2856816 Memsz: 2856816 @@ -945,6 +944,7 @@ const HLEFunction ThreadManForKernel[] = {0xB736E9FF, &WrapI_IU, "sceKernelFreeVpl", 'i', "ix", HLE_KERNEL_SYSCALL }, {0x1D371B8A, &WrapI_IU, "sceKernelCancelVpl", 'i', "ix", HLE_KERNEL_SYSCALL }, {0x39810265, &WrapI_IU, "sceKernelReferVplStatus", 'i', "ip", HLE_KERNEL_SYSCALL }, + {0xBC31C1B9, nullptr, "sceKernelExtendKernelStack"}, }; void Register_ThreadManForUser() @@ -974,6 +974,7 @@ const HLEFunction LoadExecForKernel[] = {0XA3D5E142, nullptr, "sceKernelExitVSHVSH", '?', "" }, {0X28D0D249, &WrapI_CU, "sceKernelLoadExecVSHMs2", 'i', "sx" }, {0x6D302D3D, &WrapV_V, "sceKernelExitVSHKernel", 'v', "x", HLE_KERNEL_SYSCALL },// when called in game mode it will have the same effect that sceKernelExitGame + {0x05572A5F, &WrapV_V, "sceKernelExitGame", 'v', "", HLE_KERNEL_SYSCALL }, }; void Register_LoadExecForKernel() diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index edb07ee7be..6dcd483909 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -3490,6 +3490,7 @@ int sceKernelRegisterExitCallback(SceUID cbId) return hleLogDebug(Log::sceKernel, 0); } +// Update the exit callback status? int LoadExecForUser_362A956B() { WARN_LOG_REPORT(Log::sceKernel, "LoadExecForUser_362A956B()"); diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index 881828be1c..70c71c9f2b 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -1591,6 +1591,10 @@ const HLEFunction sceUtility[] = {0XECE1D3E5, nullptr, "sceUtility_ECE1D3E5", '?', "" }, {0XEF3582B2, nullptr, "sceUtility_EF3582B2", '?', "" }, + {0x05e242a1, nullptr, "sceUtility_05e242a1", '?', "" }, + {0x644b513b, nullptr, "sceUtility_644b513b", '?', "" }, + {0x043ebe3e, nullptr, "sceUtility_043ebe3e", '?', "" }, + // Fake functions for PPSSPP's use. {0xC0DE0001, &WrapI_I, "__UtilityFinishDialog", 'i', "i" }, {0xC0DE0002, &WrapI_I, "__UtilityWorkUs", 'i', "i" }, diff --git a/Core/HLE/sceVaudio.cpp b/Core/HLE/sceVaudio.cpp index aece55addc..1bcc634a75 100644 --- a/Core/HLE/sceVaudio.cpp +++ b/Core/HLE/sceVaudio.cpp @@ -88,6 +88,7 @@ static u32 sceVaudioSetEffectType(int effectType, int vol) { return 0; } +// SensMe shows that this controls the automatic audio volume normalizer static u32 sceVaudioSetAlcMode(int alcMode) { ERROR_LOG_REPORT(Log::sceAudio, "UNIMPL sceVaudioSetAlcMode(%i)", alcMode); return 0; From 8649fec2a678f8f45c5ea356c86558c7444dcc15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Mon, 15 Jun 2026 08:20:52 +0200 Subject: [PATCH 2/2] Turn off color emoji (D2D text rendering) on Windows 7. See #21834 --- Common/Render/Text/draw_text.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Common/Render/Text/draw_text.cpp b/Common/Render/Text/draw_text.cpp index df94e183c0..41305009ff 100644 --- a/Common/Render/Text/draw_text.cpp +++ b/Common/Render/Text/draw_text.cpp @@ -21,7 +21,7 @@ #include "Common/Render/Text/draw_text_sdl.h" #include "Common/Render/Text/draw_text_uwp.h" #include "Common/StringUtils.h" - +#include "Common/OSVersion.h" // TODO: Move this to somewhere more appropriate. static bool IsRenderDocLoaded() { @@ -304,7 +304,8 @@ TextDrawer *TextDrawer::Create(Draw::DrawContext *draw) { #elif defined(_WIN32) && !defined(USING_QT_UI) // If RenderDoc is active, we can't use the UWP drawer since it uses D3D11 to initialize D2D, // and RenderDoc doesn't permit multiple graphics contexts. - if (IsRenderDocLoaded()) { + // Also, this seems to cause failures under Windows 7, so let's gate on Win 10 to be safe. + if (IsRenderDocLoaded() || !IsWin10OrHigher()) { drawer = new TextDrawerWin32(draw); } else { drawer = new TextDrawerUWP(draw);