- The high quality music seems to work fine. I haven't done any extensive comparison with emulation, but all music tracks have been played with asan enabled. I haven't actually finished playing through the game, though (still stuck in the damn fireberry cave), so the finale still needs to be tested...
- I am not sure about the low quality music. It should work, but hasn't really seen much testing. Currently, I don't have any way to switch to the low quality music anyway. Maybe I'll add a launcher option for it.
- The 16bit mode I have been trying to invent doesn't work. Priority was finishing the original sound first.
- GMM volume settings haven't been fully implemented and don't work
- When these files are included for the second time, a warning is shown that the previous recipes will be overriden.
- Use_Rules helps with a workaround to disable these warnings.
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
This also (hopefully) involves most of the necessary graphics code. Text support is still missing. Otherwise, the intro and outro play mostly fine (except for some special opcodes).
Initial file handling, palette and graphics support. The opening credits get played satisfactory. Following up with the cinematics player will be much easier now...
* 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
Rename files which are only used for one target.
This is actually wrong for my renaming of sound_towns.
But I'll move the code for other targets to different files in another commit. I want to do just the renaming here, so that Git might be better at preserving the history.
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.
- Change default build system to support LoL as a subengine of KYRA. LoL is currently disabled by default.
(- Minor enum name fixes for Lands of Lore code.)
svn-id: r39099