From 6e5b54142e10327aadfa9775d3a96adb7d3f3dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sun, 8 Nov 2026 18:55:48 +0100 Subject: [PATCH] Stop reporting more things we already know about From going through what report.ppsspp.org still gets from v1.20.4 and later. The logging stays: - Module load options: invalid positions are rejected (and reported) before this, the rest is handled. - Savedata versions 1-3 are normal, only higher ones are rejected. - sceNetAdhocMatchingInit, sceIoAssign and the screenshot dialog's init: every call was reported. - sceKernelStopUnloadSelfModuleWithStatus is implemented, like the version without status, which already wasn't reported. - Thread attributes we ignore, morph and spline vertex types, BREAK, and the POPS emulator invalidating code near the PC. Co-Authored-By: Claude Opus 5.5 --- Core/Dialog/SavedataParam.cpp | 2 +- Core/HLE/sceIo.cpp | 2 +- Core/HLE/sceKernelModule.cpp | 8 ++++---- Core/HLE/sceKernelThread.cpp | 2 +- Core/HLE/sceNetAdhocMatching.cpp | 2 +- Core/HLE/sceUtility.cpp | 2 +- Core/MIPS/Interpreter.cpp | 3 +-- GPU/Common/VertexDecoderCommon.cpp | 2 +- GPU/GPUCommonHW.cpp | 2 +- 9 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Core/Dialog/SavedataParam.cpp b/Core/Dialog/SavedataParam.cpp index 39d31acabb..3d35c3436a 100644 --- a/Core/Dialog/SavedataParam.cpp +++ b/Core/Dialog/SavedataParam.cpp @@ -687,7 +687,7 @@ int SavedataParam::LoadSaveData(SceUtilitySavedataParam *param, const std::strin ERROR_LOG_REPORT(Log::sceUtility, "Savedata version with missing key: %d", param->secureVersion); return SCE_UTILITY_SAVEDATA_ERROR_LOAD_PARAM; } else if (param->secureVersion != 0) { - WARN_LOG_REPORT(Log::sceUtility, "Savedata version requested: %d", param->secureVersion); + INFO_LOG(Log::sceUtility, "Savedata version requested: %d", param->secureVersion); } std::string filename = GetFileName(param); diff --git a/Core/HLE/sceIo.cpp b/Core/HLE/sceIo.cpp index e22e35167a..36474dc498 100644 --- a/Core/HLE/sceIo.cpp +++ b/Core/HLE/sceIo.cpp @@ -843,7 +843,7 @@ static u32 sceIoAssign(u32 alias_addr, u32 physical_addr, u32 filesystem_addr, i perm = "unhandled"; break; } - WARN_LOG_REPORT(Log::sceIo, "sceIoAssign(%s, %s, %s, %s, %08x, %i)", alias.c_str(), physical_dev.c_str(), filesystem_dev.c_str(), perm.c_str(), arg_addr, argSize); + INFO_LOG(Log::sceIo, "sceIoAssign(%s, %s, %s, %s, %08x, %i)", alias.c_str(), physical_dev.c_str(), filesystem_dev.c_str(), perm.c_str(), arg_addr, argSize); return 0; } diff --git a/Core/HLE/sceKernelModule.cpp b/Core/HLE/sceKernelModule.cpp index a4028a092a..6b084b1808 100644 --- a/Core/HLE/sceKernelModule.cpp +++ b/Core/HLE/sceKernelModule.cpp @@ -3055,7 +3055,7 @@ u32 sceKernelLoadModule(MIPSState *mips, const char *name, u32 flags, u32 option ERROR_LOG_REPORT(Log::Loader, "sceKernelLoadModule(%s): invalid position (fixed)", name); return hleDelayResult(SCE_KERNEL_ERROR_MEMBLOCK_ALLOC_FAILED, "module loaded", 500); } - WARN_LOG_REPORT(Log::Loader, "sceKernelLoadModule: unsupported options size=%08x, flags=%08x, pos=%d, access=%d, data=%d, text=%d", lmoption->size, lmoption->flags, lmoption->position, lmoption->access, lmoption->mpiddata, lmoption->mpidtext); + WARN_LOG(Log::Loader, "sceKernelLoadModule: unsupported options size=%08x, flags=%08x, pos=%d, access=%d, data=%d, text=%d", lmoption->size, lmoption->flags, lmoption->position, lmoption->access, lmoption->mpiddata, lmoption->mpidtext); } // Opening and reading the file, then about 1ms plus 30us per KB of loader work, the caller waiting @@ -3455,7 +3455,7 @@ u32 __KernelStopUnloadSelfModuleWithOrWithoutStatus(u32 exitCode, u32 argSize, u if (loadedModules.size() > 1) { if (WithStatus) { - ERROR_LOG_REPORT(Log::sceModule, "UNIMPL sceKernelStopUnloadSelfModuleWithStatus(%08x, %08x, %08x, %08x, %08x): game may have crashed", exitCode, argSize, argp, statusAddr, optionAddr); + WARN_LOG(Log::sceModule, "sceKernelStopUnloadSelfModuleWithStatus(%08x, %08x, %08x, %08x, %08x)", exitCode, argSize, argp, statusAddr, optionAddr); } else { // NOTE: The previous "may have crashed" message is not accurate, Splinter Cell Essentials uses this normally when leaving/entering in-game. // We should not report this. @@ -3749,7 +3749,7 @@ static u32 sceKernelLoadModuleByID(u32 id, u32 flags, u32 lmoptionPtr) { const SceKernelLMOption *lmoption = 0; if (lmoptionPtr) { lmoption = (const SceKernelLMOption *)Memory::GetPointerOrException(lmoptionPtr); - WARN_LOG_REPORT(Log::Loader, "sceKernelLoadModuleByID: unsupported options size=%08x, flags=%08x, pos=%d, access=%d, data=%d, text=%d", lmoption->size, lmoption->flags, lmoption->position, lmoption->access, lmoption->mpiddata, lmoption->mpidtext); + WARN_LOG(Log::Loader, "sceKernelLoadModuleByID: unsupported options size=%08x, flags=%08x, pos=%d, access=%d, data=%d, text=%d", lmoption->size, lmoption->flags, lmoption->position, lmoption->access, lmoption->mpiddata, lmoption->mpidtext); } u32 pos = (u32)pspFileSystem.SeekFile(handle, 0, FILEMOVE_CURRENT); size_t size = pspFileSystem.SeekFile(handle, 0, FILEMOVE_END); @@ -3866,7 +3866,7 @@ SceUID sceKernelLoadModuleBufferUsbWlan(u32 size, u32 bufPtr, u32 flags, u32 lmo const SceKernelLMOption *lmoption = 0; if (lmoptionPtr) { lmoption = (const SceKernelLMOption *)Memory::GetPointerOrException(lmoptionPtr); - WARN_LOG_REPORT(Log::Loader, "sceKernelLoadModuleBufferUsbWlan: unsupported options size=%08x, flags=%08x, pos=%d, access=%d, data=%d, text=%d", lmoption->size, lmoption->flags, lmoption->position, lmoption->access, lmoption->mpiddata, lmoption->mpidtext); + WARN_LOG(Log::Loader, "sceKernelLoadModuleBufferUsbWlan: unsupported options size=%08x, flags=%08x, pos=%d, access=%d, data=%d, text=%d", lmoption->size, lmoption->flags, lmoption->position, lmoption->access, lmoption->mpiddata, lmoption->mpidtext); } std::string error_string; PSPModule *module = nullptr; diff --git a/Core/HLE/sceKernelThread.cpp b/Core/HLE/sceKernelThread.cpp index 49f5c6ff65..da674a9cfe 100644 --- a/Core/HLE/sceKernelThread.cpp +++ b/Core/HLE/sceKernelThread.cpp @@ -2175,7 +2175,7 @@ int __KernelCreateThread(const char *threadName, SceUID moduleID, u32 entry, u32 } if ((attr & ~PSP_THREAD_ATTR_SUPPORTED) != 0) { - WARN_LOG_REPORT(Log::sceKernel, "sceKernelCreateThread(name=%s): unsupported attributes %08x, ignoring", threadName, attr & ~PSP_THREAD_ATTR_SUPPORTED); + WARN_LOG(Log::sceKernel, "sceKernelCreateThread(name=%s): unsupported attributes %08x, ignoring", threadName, attr & ~PSP_THREAD_ATTR_SUPPORTED); } // TODO: Not sure what these values are, but they are removed from the attr silently. diff --git a/Core/HLE/sceNetAdhocMatching.cpp b/Core/HLE/sceNetAdhocMatching.cpp index 94cc80c454..a0d4b46c90 100644 --- a/Core/HLE/sceNetAdhocMatching.cpp +++ b/Core/HLE/sceNetAdhocMatching.cpp @@ -1525,7 +1525,7 @@ int sceNetAdhocMatchingDelete(MIPSState *mips, int matchingId) { } int sceNetAdhocMatchingInit(MIPSState *mips, u32 memsize) { - WARN_LOG_REPORT_ONCE(sceNetAdhocMatchingInit, Log::sceNet, "sceNetAdhocMatchingInit(%d) at %08x", memsize, mips->pc); + INFO_LOG(Log::sceNet, "sceNetAdhocMatchingInit(%d) at %08x", memsize, mips->pc); // Uninitialized Library if (netAdhocMatchingInited) diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index 52b3c2fe9f..9ee6ff6d14 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -1413,7 +1413,7 @@ static int sceUtilityGetNetParamLatestID(u32 idAddr) { //TODO: Implement all sceUtilityScreenshot* for real, it doesn't seem to be complex //but it requires more investigation static int sceUtilityScreenshotInitStart(u32 paramAddr) { - return hleReportWarning(Log::sceUtility, UtilityInitStart(UtilityDialogType::SCREENSHOT, screenshotDialog, paramAddr)); + return hleLogInfo(Log::sceUtility, UtilityInitStart(UtilityDialogType::SCREENSHOT, screenshotDialog, paramAddr)); } static int sceUtilityScreenshotShutdownStart() { diff --git a/Core/MIPS/Interpreter.cpp b/Core/MIPS/Interpreter.cpp index 7ed63a3dcc..84f0ee9ec8 100644 --- a/Core/MIPS/Interpreter.cpp +++ b/Core/MIPS/Interpreter.cpp @@ -155,7 +155,7 @@ namespace MIPSInt { } if (alignedAddr <= PC + 4 && alignedAddr + size >= PC - 4) { // This is probably rare so we don't use a static bool. - WARN_LOG_REPORT_ONCE(icacheInvalidatePC, Log::JIT, "Invalidating address near PC: %08x (%08x + %d) at PC=%08x", addr, R(rs), imm, PC); + WARN_LOG_ONCE(icacheInvalidatePC, Log::JIT, "Invalidating address near PC: %08x (%08x + %d) at PC=%08x", addr, R(rs), imm, PC); } } break; @@ -219,7 +219,6 @@ namespace MIPSInt { } void Int_Break(MIPSState *mips, MIPSOpcode op) { - Reporting::ReportMessage("BREAK instruction hit"); Core_BreakException(PC); PC += 4; } diff --git a/GPU/Common/VertexDecoderCommon.cpp b/GPU/Common/VertexDecoderCommon.cpp index 2a4b8656bc..d46cefe5d1 100644 --- a/GPU/Common/VertexDecoderCommon.cpp +++ b/GPU/Common/VertexDecoderCommon.cpp @@ -1222,7 +1222,7 @@ void VertexDecoder::SetVertexType(u32 fmt, const VertexDecoderOptions &options, memset(&decFmt, 0, sizeof(decFmt)); if (morphcount > 1) { - DEBUG_LOG_REPORT_ONCE(vtypeM, Log::G3D, "VTYPE with morph used: THRU=%i TC=%i COL=%i POS=%i NRM=%i WT=%i NW=%i IDX=%i MC=%i", (int)throughmode, tc, col, pos, nrm, weighttype, nweights, idx, morphcount); + DEBUG_LOG(Log::G3D, "VTYPE with morph used: THRU=%i TC=%i COL=%i POS=%i NRM=%i WT=%i NW=%i IDX=%i MC=%i", (int)throughmode, tc, col, pos, nrm, weighttype, nweights, idx, morphcount); } else { DEBUG_LOG(Log::G3D, "VTYPE: THRU=%i TC=%i COL=%i POS=%i NRM=%i WT=%i NW=%i IDX=%i MC=%i", (int)throughmode, tc, col, pos, nrm, weighttype, nweights, idx, morphcount); } diff --git a/GPU/GPUCommonHW.cpp b/GPU/GPUCommonHW.cpp index 405cb4dbbc..3211c520ea 100644 --- a/GPU/GPUCommonHW.cpp +++ b/GPU/GPUCommonHW.cpp @@ -1361,7 +1361,7 @@ void GPUCommonHW::Execute_Bezier(u32 op, u32 diff) { } if (vertTypeIsSkinningEnabled(vertType)) { - DEBUG_LOG_REPORT(Log::G3D, "Unusual bezier/spline vtype: %08x, morph: %d, bones: %d", vertType, (vertType & GE_VTYPE_MORPHCOUNT_MASK) >> GE_VTYPE_MORPHCOUNT_SHIFT, vertTypeGetNumBoneWeights(vertType)); + DEBUG_LOG(Log::G3D, "Unusual bezier/spline vtype: %08x, morph: %d, bones: %d", vertType, (vertType & GE_VTYPE_MORPHCOUNT_MASK) >> GE_VTYPE_MORPHCOUNT_SHIFT, vertTypeGetNumBoneWeights(vertType)); } // Can't flush after setting gstate_c.submitType below since it'll be a mess - it must be done already.