#exult@irc.freenode.net logs for 9 Oct 2015 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[01:23:09] --> DominusExult has joined #exult
[01:23:09] --- ChanServ gives channel operator status to DominusExult
[01:25:15] <-- Dominus has left IRC (Ping timeout: 250 seconds)
[01:25:15] --- DominusExult is now known as Dominus
[06:13:48] <-- Dark-Star has left IRC (Ping timeout: 264 seconds)
[06:51:51] <-- Lightkey has left IRC (Ping timeout: 240 seconds)
[07:04:53] --> Lightkey has joined #exult
[12:40:07] <-- Kirben has left IRC ()
[12:41:48] --> Rottingbeef_ has joined #exult
[12:44:03] <-- Rottingbeef has left IRC (Ping timeout: 244 seconds)
[15:46:37] --> Dark-Star has joined #exult
[16:08:21] <-- Rottingbeef_ has left IRC ()
[18:01:26] --> Rottingbeef has joined #exult
[18:02:53] --> michael-kohlhaas has joined #exult
[19:30:30] <-- michael-kohlhaas has left IRC (Remote host closed the connection)
[19:44:18] --> Rottingbeef_ has joined #exult
[19:46:27] <-- Rottingbeef has left IRC (Ping timeout: 250 seconds)
[20:39:21] <Dominus> hmm, wjp, it seems that when I did rev 7486, moving FMOpl to the top of the midi list, I messed something up
[20:40:07] <Dominus> Or rather, on OS X, when you don't have games setup, Exult hangs while it is supposed to shut down
[20:40:26] <Dominus> seems as if FMOpl is not "destroying" properly
[20:47:50] <wjp> so run current svn without a config file?
[20:48:11] <Dominus> yes, unless you have the games in the search path
[20:49:06] <Dominus> (usr/local/share/exult/blackgate will be picked up)
[20:50:03] <wjp> hm, no problem here
[20:50:12] <wjp> I get the 'no game data' screen, and then it quits
[20:50:39] <wjp> and it's using FMOpl
[20:52:19] <wjp> where does it hang?
[20:52:58] <Dominus> when it should shut down, I think
[20:53:35] <wjp> gdb?
[20:53:48] <wjp> (or lldb I suppose?)
[20:54:01] <Dominus> seems to be a problem on only my 32bit VMs...
[20:54:35] <Dominus> does it play music for you?
[20:54:46] <Dominus> (no idea whether it should)
[20:55:01] <wjp> it doesn't
[20:55:13] <wjp> I doubt we'd have music on that 'no game data' screen though
[20:56:32] <Dominus> really curios, in the VM it hangs after "Destroying MidiDriver"
[20:56:51] <wjp> so, try gdb? :-)
[20:57:01] <Dominus> yeah...
[20:57:11] <wjp> too much code to guess at what it's doing
[20:57:25] <Dominus> will do that now
[21:04:51] <Dominus> seems the older OS X have a general problem with FMOpl... I can't even change the midi driver without it crashing...
[21:05:07] <Dominus> when I have coreaudio driver it works...
[21:07:07] <wjp> hm
[21:21:06] <Dominus> wjp, what do I do in gdb when the program hangs instead of crashes?
[21:25:56] <wjp> ctrl-c
[21:25:59] <wjp> and then the usual
[21:26:13] <Dominus> http://pastebin.com/kCWpjRmk
[21:28:12] <wjp> "info threads" ?
[21:28:56] <Dominus> 5 0x99a72aa2 in __semwait_signal ()
[21:28:56] <Dominus> 2 "com.apple.libdispatch-manager" 0x99a6b382 in kevent ()
[21:28:56] <Dominus> * 1 "com.apple.main-thread" 0x99a72aa2 in __semwait_signal ()
[21:29:30] <wjp> thread 5
[21:29:31] <wjp> bt
[21:29:33] <wjp> thread 2
[21:29:35] <wjp> bt
[21:29:37] <wjp> thread 1
[21:29:40] <wjp> bt
[21:30:35] <Dominus> http://pastebin.com/QjgV2xpv
[21:42:30] <wjp> hm
[21:43:22] <wjp> it's a bit suspicuous that there's no audio thread
[21:43:38] <wjp> suspicious, even
[21:44:32] <wjp> did gdb already output something about threads exiting earlier?
[21:46:13] <Dominus> no
[21:46:27] <wjp> SDL 1 or 2?
[21:46:33] <Dominus> sdl1
[21:47:01] <wjp> in audio/midi_drivers/LowLevelMidiDriver.cpp, can you add some printfs?
[21:47:12] <Dominus> sure
[21:47:15] <wjp> right at the start of produceSamples(): fprintf(stderr, "produceSamples 1\n");
[21:47:38] <wjp> and right above the "// Pop all messages" line, fprintf(stderr, "produceSamples 3\n");
[21:47:44] <wjp> (in the same function)
[21:48:19] <wjp> and at the top of sendComMessage (same file), fprintf(stderr, "Sending type %d\n", message.type);
[21:51:19] <Dominus> which sendComMessage ?
[21:51:23] <Dominus> void LowLevelMidiDriver::sendComMessage(ComMessage& message) function?
[21:51:41] <wjp> yes
[21:54:17] <Dominus> http://pastebin.com/EVUw7q8S
[21:55:03] <wjp> huh, no produceSamples output at all?
[21:55:35] <Dominus> oh, sorry, that is with an unconfigured Exult
[21:55:44] <Dominus> I think that's why
[21:55:50] <wjp> no, that's not why :-)
[21:56:01] <Dominus> one could hope :)
[21:56:23] <wjp> it's waiting for the audio to finish processing, but it's not processing audio at all
[21:57:21] <wjp> is there a 'Creating AudioMixer..." output line?
[21:57:42] <wjp> (should be pretty close above what you copie)
[21:57:47] <wjp> copied
[21:57:56] <Dominus> yes, it's there
[21:58:14] <wjp> with "Audio opened using [...]" below it?
[21:58:32] <Dominus> when I do this with a configured Exult (with games) then you get the other types
[21:58:44] <wjp> stick with unconfigured for now
[21:59:50] <Dominus> Creating AudioMixer...
[21:59:59] <Dominus> Audio opened using format: 22050 Hz 2 Channels
[21:59:59] <Dominus> Audio initialisation OK
[21:59:59] <Dominus> Timbers Precached: On play only
[22:00:11] <Dominus> OGG Vorbis Digital Music: Disabled
[22:00:11] <Dominus> Trying: `FMOpl'
[22:00:12] <wjp> heh, timbers :-)
[22:01:09] <wjp> can you break in gdb while it's on the 'no game data' screen (so before it hangs), and then do another 'info threads'?
[22:01:28] <Dominus> sure
[22:02:42] <Dominus> info threads
[22:02:42] <Dominus> 5 0x99a72aa2 in __semwait_signal ()
[22:02:42] <Dominus> 4 0x99a6a412 in __workq_kernreturn ()
[22:02:42] <Dominus> 3 0x99a6a412 in __workq_kernreturn ()
[22:02:43] <Dominus> 2 "com.apple.libdispatch-manager" 0x99a6b382 in kevent ()
[22:02:44] <Dominus> * 1 "com.apple.main-thread" 0x99a72aa2 in __semwait_signal ()
[22:03:23] <wjp> thread 5, bt, thread 4, bt, thread 3, bt, thread 2, bt, thread 1, bt
[22:03:33] * wjp wonders if there's a direct gdb command for that
[22:04:07] <wjp> ah, there is
[22:04:09] <wjp> thread apply all backtrace
[22:04:42] <Dominus> http://pastebin.com/5BtwSBW3
[22:04:51] <Dominus> next time, I'll use that command :)
[22:05:46] <wjp> so why is there no audio thread...
[22:06:37] <wjp> I feel like I don't know enough about OS X here
[22:10:36] <Dominus> ok, on my main machine, where it doesn't crash, it produces an endless amount of "produceSamples 1" messages
[22:13:48] <wjp> yes
[22:13:59] <wjp> and then the '3' when it exits
[22:15:18] <Dominus> Destroying MidiDriver...
[22:15:18] <Dominus> Sending type 2
[22:15:18] <Dominus> produceSamples 1
[22:15:19] <Dominus> Sending type -3
[22:15:20] <Dominus> produceSamples 3
[22:15:21] <Dominus> ~Audio: about to quit subsystem
[22:15:49] <Dominus> hmm
[22:16:08] <Dominus> wjp, my VM does not have an output device
[22:17:46] <Dominus> to be more precise, my VM with OS X 10.5 and 10.6 which hang have no output device, my other VM with OS X 10.8 does have one and it doesn't hang and gives the sample stuff
[22:18:09] <wjp> I see
[22:18:18] <Dominus> just maybe that's the whole culprit
[22:18:29] <wjp> that sounds plausible
[22:21:23] * Dominus found a hacked driver for the VM...
[22:21:32] * Dominus is installing...
[22:29:47] <Dominus> it's not installing properly... :(
[22:33:14] <wjp> do you actually need audio?
[22:33:54] <wjp> (I'm not sure what you're trying or testing)
[22:34:37] <Dominus> just want to know whether the missing audio output is the culprit
[22:35:05] <Dominus> since this means that Exult will crahs for anyone without a sound card right now
[22:35:13] <Dominus> or at least anyone on OS X...
[22:35:17] <Dominus> :)
[22:36:22] <Dominus> yup
[22:36:30] <Dominus> wjp, that's the whole problem
[22:36:56] <Dominus> I succeeded in adding a "sound card" to the VM and the crash is gone
[22:37:53] <Dominus> so... I presume this is gonna bite the ten people or so that run Exult without a soundcard and never configure Exult to turn off Audio...
[22:39:19] <Dominus> and this does not seem to happen with CoreAudio midi driver <- perhaps we are not properly destroying there :)
[22:42:52] <Dominus> wjp, thanks for helping me and sorry, I could have come to this conclusion sooner...
[22:46:41] <wjp> no problem :-)
[22:47:22] <wjp> the coreaudio midi driver doesn't use SDL audio output, so it doesn't care about this (IIRC)
[22:47:38] <Dominus> ah
[22:48:34] <Dominus> this is curios btw, that Fingolfin chose to do it this way since SDL does nowadays have CoreAudio
[22:48:51] <wjp> do it which way?
[22:49:57] <wjp> hm, does SDL even have midi support?
[22:50:21] <Dominus> I may have my usual understanding problems, it's just that there is so much similar code in Exult's and SDL coreaudio driver
[22:50:53] <Dominus> in SDL's src/audio/macosx/SDL_coreaudio.c
[22:51:23] <wjp> that's not midi
[22:52:05] <Dominus> I see
[23:25:46] --> Rottingbeef has joined #exult
[23:29:24] <-- Rottingbeef_ has left IRC (Ping timeout: 264 seconds)