fabiangreffrath / woof

Woof! is a continuation of the Boom/MBF bloodline of Doom source ports.
GNU General Public License v2.0
187 stars 32 forks source link

Overlapping music strings in console #1778

Open MrAlaux opened 1 week ago

MrAlaux commented 1 week ago

Tested in the latest master artifact (Win-64).

See for yourself, third-to-last line: imagen

As you may gather, I'm using FluidSynth with a specific soundfont that seems to lack some instruments, and the MIDI seems to expect one of them, triggering the warning -- I had to run with -verbose for it to show up.

I'd guess that you would need the WAD and soundfont (GM.sf2) in question to debug this, but I'm not sure if I should share the latter, and without it, the former may be useless. Let me know what to do.

fabiangreffrath commented 1 week ago

Not sure if there is much we can do about this if both I_Printf() and fluidsynth stream to stdout. Does this help?

diff --git a/src/i_printf.c b/src/i_printf.c
index 5171e169..2a844f92 100644
--- a/src/i_printf.c
+++ b/src/i_printf.c
@@ -218,6 +218,11 @@ void I_Printf(verbosity_t prio, const char *msg, ...)
     {
         whole_line = false;
     }
+
+    if (stream == stdout && whole_line)
+    {
+        fflush(stream);
+    }
 }

 void I_PutChar(verbosity_t prio, int c)
@@ -228,4 +233,9 @@ void I_PutChar(verbosity_t prio, int c)

         whole_line = (c == '\n');
     }
+
+    if (whole_line)
+    {
+        fflush(stdout);
+    }
 }
rfomin commented 1 week ago

Not sure if we can fix this, Fluidsynth uses threads internally. We can disable Fludsynth logging completely.