diff options
| -rw-r--r-- | engines/kyra/sound_adlib.cpp | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/engines/kyra/sound_adlib.cpp b/engines/kyra/sound_adlib.cpp index a601d457a4..dda58f9353 100644 --- a/engines/kyra/sound_adlib.cpp +++ b/engines/kyra/sound_adlib.cpp @@ -739,8 +739,8 @@ void AdlibDriver::updateAndOutput1(uint8 rawNote, OutputState &state, bool flag)  	// The calculation of frequency looks quite different from the original  	// disassembly at a first glance, but when you consider that the  	// largest possible value would be 0x0246 + 0xFF + 0x47 (and that's if -	// baseFreq turns out to be unsigned after all), freq is still a 10-bit -	// value, just as it should be to fit in the Ax and Bx registers. +	// baseFreq is unsigned), freq is still a 10-bit value, just as it +	// should be to fit in the Ax and Bx registers.  	//  	// If it were larger than that, it could have overflowed into the  	// octave bits, and that could possibly have been used in some sound. @@ -1847,6 +1847,13 @@ const uint8 AdlibDriver::_unkTable2_3[] = {  	0x16, 0x15  }; +// This table is used to modify the frequency of the notes, depending on the +// note value and unk16. In theory, we could very well try to access memory +// outside this table, but in reality that probably won't happen. +// +// This could be some sort of pitch bend, but I have yet to see it used for +// anything so it's hard to say. +  // TODO: format this  const uint8 AdlibDriver::_unkTables[][32] = {  	{    0x00,  0x01,  0x02,  0x03,  0x04,  0x05,  0x06,  0x08, | 
