In Zork Zero, grahpics drawn to window 0 (the text buffer)
are always treated as being interleaved with the text.
Whereas in Arthur, the title screens are drawn to window 0,
so have to be drawn to the background
The ScummGlk backend already had a new 'arbitrary' mode allowing
for windows to be placed at any position, and on top of each other.
This expands on this by ensuring that the background window, which
is used for drawing graphics on, appears behind text that gets
written. Yet can still appear on top of the text (hiding it)
when title screen graphics are being shown
- Backport some code of waltervn's fork at his recommendation (taken from 97604200 and 4c3bfee5). That code has caught some bitrot and I were too lazy to manually resolve the merge conflicts. All changes have been re-checked with disasm.
- Add initTrack() implementation for SCI0 EARLY/LATE
- Minor cleanup
- Please note that this commit does not fix any shortcomings of the SCI sound engine
After implementing such a dialog into the fb01 driver it did make sense to me to also have this as a feature for all other aftermarket drivers/patches.
So now the sound drivers can report missing files after the failed open() call which will then be displayed in a dialog. Which will at least be more helpful than our usual error messages...
Fix SCI0 (LATE/EARLY) variants of the driver which were broken (didn't play at all). This might be of my own doing, since I introduced the initTrack() method into the driver class and the fb01 driver didn't have one so far.
SCI1 didn't seem to require much fixing. I modified some things according to my findings in the driver disasms. QFG2 and JONES seem to be fine. I am not too happy with KQ5. It has volume issues, but they might be present in the original, too.
I also added an isOpen() check and a mutex to avoid threading issues. When aborting SCI (either quitting ScummVM or returning ot the launcher) while using the fb01 driver I frequently (more often than not) got the assert from backends/midi/windows.cpp, line 95. This fixes that.
I've done plenty of checks and experiments with the sound bank initialization. But I found no bugs or possible improvements there. Hard to tell whether the sound is right. That device seems to have a mind of its own...
Pitchwheel and channel volume settings need to be updated when the channels get reassigned.
This bug caused faulty music at least in KQ5 when walking from the dwarves scene into the harp playing tree scene.
WINTERMUTE: Fix detection for Chinese reversion2
Current "data.dcp" infromation is from reversion1 and not from reversion2 game... surely a C&P mistake