diff --git a/engines/kyra/kyra.cpp b/engines/kyra/kyra.cpp index 74505b4adf2..97644c02625 100644 --- a/engines/kyra/kyra.cpp +++ b/engines/kyra/kyra.cpp @@ -646,6 +646,7 @@ void KyraEngine::startup() { error("Could not load \"_NPC.EMC\" script"); } + snd_playTheme(1); enterNewScene(_currentCharacter->sceneId, _currentCharacter->facing, 0, 0, 1); if (_abortIntroFlag && _skipFlag) { diff --git a/engines/kyra/sound_adlib.cpp b/engines/kyra/sound_adlib.cpp index c74d9a0f1a7..b15a8514a05 100644 --- a/engines/kyra/sound_adlib.cpp +++ b/engines/kyra/sound_adlib.cpp @@ -844,7 +844,7 @@ void AdlibDriver::setupDuration(uint8 duration, OutputState &state) { debugC(9, kDebugLevelSound, "setupDuration(%d, %d)", duration, &state - _outputTables); _continueFlag = duration; if (state.unk11) { - state.unk5 = duration + (getRandomNr() & state.unk11 & 0xFF); + state.unk5 = duration + (getRandomNr() & state.unk11); return; } if (state.unk12) { @@ -1666,7 +1666,7 @@ int AdlibDriver::updateCallback50(uint8 *&dataptr, OutputState &state, uint8 val _unk4 = 0; // Amplitude Modulation Depth / Vibrato Depth / Rhythm - writeOPL(0xBD, value & _unkOutputByte2); + writeOPL(0xBD, _unkOutputByte2 & 0xC0); return 0; }