[Scummvm-tracker] [ScummVM :: Bugs] #12947: NSInternalInconsistencyException in PQ2 and SQ3 when using external MT-32 device
ScummVM :: Bugs
trac at scummvm.org
Mon Sep 20 18:37:10 UTC 2021
#12947: NSInternalInconsistencyException in PQ2 and SQ3 when using external MT-32
device
---------------------+--------------------------
Reporter: tsoliman | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Audio: MT32
Version: | Resolution:
Keywords: sci | Game:
---------------------+--------------------------
Comment (by criezy):
This was discussed a bit on Discord today, and to make sure this does not
get lost, here is a summary.
We think the main issue is that pollEvent gets called from the audio
thread. The commit found by sluice box probably caused that by moving some
code execution from the main thread to the audio thread.
We can see two main ways to tackle the issue:
1. Revert the commit that introduced the regression
2. Change the `Sci MidiPlayer_Midi` so that when it wants to sleep in the
audio thread it does not call `SciEngine::sleep` but instead has its own
sleep function that just sleeps (and does not poll events).
We also suspect that `MidiPlayer_Fb01` might have the same issue as it is
also calling `SciEngine::sleep`.
And the issue may not be limited to calling `sleep`. Those players also
call `OSystem::updateScreen`, and if that can also happen in the audio
thread this would likely also be an issue.
--
Ticket URL: <https://bugs.scummvm.org/ticket/12947#comment:4>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list