diff options
| -rw-r--r-- | engines/kyra/sound_adlib.cpp | 26 | 
1 files changed, 12 insertions, 14 deletions
diff --git a/engines/kyra/sound_adlib.cpp b/engines/kyra/sound_adlib.cpp index 83416d751b..5f0a01ee72 100644 --- a/engines/kyra/sound_adlib.cpp +++ b/engines/kyra/sound_adlib.cpp @@ -1380,20 +1380,18 @@ int AdlibDriver::updateCallback48(uint8 *&dataptr, OutputState &state, uint8 val  	int tableBackUp = _curTable;  	int outputByteBackUp = _unkOutputByte1; -	uint8 entry = value * 2; +	uint8 entry = value << 1; +	uint8 *ptr = _soundData + READ_LE_UINT16(_soundData + entry + 0x1F4); -	uint8 *ptr = _soundData;  	_curTable = 6;  	_unkOutputByte1 = _outputTable[6]; -	ptr += READ_LE_UINT16(_soundData + entry + 0x1F4); -  	_unkValue6 = *(ptr + 6);  	updateAndOutput2(_unkOutputByte1, ptr, state); -	entry = *ptr++ * 2; +	entry = *dataptr++ << 1; +	ptr = _soundData + READ_LE_UINT16(_soundData + entry + 0x1F4); -	ptr = _soundData;  	_curTable = 7;  	_unkOutputByte1 = _outputTable[7]; @@ -1401,9 +1399,9 @@ int AdlibDriver::updateCallback48(uint8 *&dataptr, OutputState &state, uint8 val  	_unkValue8 = entry = *(ptr + 6);  	updateAndOutput2(_unkOutputByte1, ptr, state); -	entry = *ptr++ * 2; +	entry = *dataptr++ << 1; +	ptr = _soundData + READ_LE_UINT16(_soundData + entry + 0x1F4); -	ptr = _soundData;  	_curTable = 8;  	_unkOutputByte1 = _outputTable[8]; @@ -1413,17 +1411,17 @@ int AdlibDriver::updateCallback48(uint8 *&dataptr, OutputState &state, uint8 val  	// Octave / F-Number / Key-On for channels 6, 7 and 8 -	_outputTables[6].unkOutputValue1 = *ptr++ & 0x2F; +	_outputTables[6].unkOutputValue1 = *dataptr++ & 0x2F;  	writeOPL(0xB6, _outputTables[6].unkOutputValue1); -	writeOPL(0xA6, *ptr++); +	writeOPL(0xA6, *dataptr++); -	_outputTables[7].unkOutputValue1 = *ptr++ & 0x2F; +	_outputTables[7].unkOutputValue1 = *dataptr++ & 0x2F;  	writeOPL(0xB7, _outputTables[7].unkOutputValue1); -	writeOPL(0xA7, *ptr++); +	writeOPL(0xA7, *dataptr++); -	_outputTables[8].unkOutputValue1 = *ptr++ & 0x2F; +	_outputTables[8].unkOutputValue1 = *dataptr++ & 0x2F;  	writeOPL(0xB8, _outputTables[8].unkOutputValue1); -	writeOPL(0xA8, *ptr++); +	writeOPL(0xA8, *dataptr++);  	_unk4 = 0x20;  | 
