The ingame graphics use up 208 pixels out of 224. The top and bottom 8x8 pixel tile rows are left blank.
This commit emulates that. But actually it looks ugly, especially in windowed mode. On a TV screen of that era it was probably unnoticeable.
TODO: GET RID OF THIS COMMIT AND FIND ANOTHER SOLUTION
* MIDI/KYRA: Add channel locking and GM to XMIDI
This improves support for XMIDI channel locking and moves it from the KYRA
engine to the generic Miles MIDI driver. To support this, a source parameter
is added to the XMIDI parser and Miles driver so the driver can distinguish
several XMIDI parser instances sending MIDI events. I've also added GM support
to the generic Miles MIDI driver.
The previous implementation of channel locking did not always track and restore
controller values properly when unlocking a channel. Specifically, at the start
of Legend of Kyrandia, when Brandon talks to the tree, the tree "creaking"
sound effect uses some channels from the background music. The volume of the
music channels was not correctly restored, resulting in some instruments being
much louder then others.
Another issue was that volume was not always properly set when locking a
channel. In the Legend of Kyrandia intro, when Brandon is lifted up to the
house, some sound effects were missing because MIDI channel volume was 0.
This new implementation fixes these issues.
* MIDI: Suppress Miles controller warnings
Several Miles controller MIDI messages generate warnings in the XMIDI parser,
even though they are handled by the Miles drivers. I've removed these.
* MIDI: Fix Codacy issues
This reverts the change from 1d5fd780 which was clearly wrong and caused this new bug (no idea what I was thinking there). To prevent the revival of bug #3721 I now added the proper code for a fix after tracking the whole bug with the DOSBox debugger.
- added a missing function that causes keyboard key presses to trigger certain sound effects
- improve keyboard responsiveness during idle animations (HOF only)
Reorganize all files in sub directories. The file placement isn't as intuitive as it might be for other engines, which is probably the reason why this hasn't been done before.