[Scummvm-cvs-logs] SF.net SVN: scummvm: [21105] scummvm/trunk/engines/kyra/sound_adlib.cpp

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sun Mar 5 13:50:19 CET 2006


Revision: 21105
Author:   lordhoto
Date:     2006-03-05 13:48:55 -0800 (Sun, 05 Mar 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm?rev=21105&view=rev

Log Message:
-----------
Corrects implementation of updateCallback48.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/sound_adlib.cpp
Modified: scummvm/trunk/engines/kyra/sound_adlib.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sound_adlib.cpp	2006-03-05 21:30:44 UTC (rev 21104)
+++ scummvm/trunk/engines/kyra/sound_adlib.cpp	2006-03-05 21:48:55 UTC (rev 21105)
@@ -1380,20 +1380,18 @@
 	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 @@
 	_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 @@
 
 	// 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;
 







More information about the Scummvm-git-logs mailing list