From b5253317d02769cdb8c0e3970295c307bd74210a Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Tue, 13 May 2025 02:17:37 +1000 Subject: [PATCH] Attempt to fix melonDS log line prefixing (resolves #4317) doesn't properly handle the case of changing loglevel w/ an "unfinished" message, but neither did the naive impl. --- .../Consoles/Nintendo/NDS/MelonDS.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs index 03634ca536..fc0d4e1a1d 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/NDS/MelonDS.cs @@ -12,6 +12,7 @@ using BizHawk.BizInvoke; using BizHawk.Common; using BizHawk.Common.IOExtensions; using BizHawk.Common.NumberExtensions; +using BizHawk.Common.StringExtensions; using BizHawk.Emulation.Common; using BizHawk.Emulation.Cores.Properties; using BizHawk.Emulation.Cores.Waterbox; @@ -28,8 +29,18 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS private readonly LibMelonDS.LogCallback _logCallback; - private static void LogCallback(LibMelonDS.LogLevel level, string message) - => Console.Write($"[{level}] {message}"); + private bool loggingShouldInsertLevelNextCall = true; + + private void LogCallback(LibMelonDS.LogLevel level, string message) + { + if (loggingShouldInsertLevelNextCall) + { + Console.Write($"[{level}] "); + loggingShouldInsertLevelNextCall = false; + } + Console.Write(message); + if (message.EndsWith('\n')) loggingShouldInsertLevelNextCall = true; + } private readonly MelonDSGLTextureProvider _glTextureProvider; private readonly IOpenGLProvider _openGLProvider;