https://bugs.winehq.org/show_bug.cgi?id=46170
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aeikum@codeweavers.com
--- Comment #18 from Andrew Eikum aeikum@codeweavers.com --- (In reply to Fabian Maurer from comment #16)
Is there a way to legally get one of the games to reproduce with?
For example, a test in a VM would be interesting. Though I suspect an ALSA issue here, getting a NULL event does sound wrong.
It does sound wrong, but the alsa-lib tests actually account for this. Here's the loop from alsa-lib/test/seq-decoder.c:
max = snd_seq_poll_descriptors_count(handle, POLLIN); pfds = alloca(sizeof(*pfds) * max); while (1) { snd_seq_poll_descriptors(handle, pfds, max, POLLIN); if (poll(pfds, max, -1) < 0) break; do { if ((err = snd_seq_event_input(handle, &ev))<0) break; if (!ev) continue; decode_event(ev); snd_seq_free_event(ev); } while (err > 0); }
You could try changing Wine's event loop to match this behavior (e.g. get rid of snd_seq_event_input_pending and just use the return from snd_seq_event_input to break the inner loop).
I think the way to decide whether this is a ScummVM bug or an ALSA and/or Wine bug would be to try the game on Windows and see if it also fails to switch the instruments, right?