[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