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

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Mon Mar 13 05:57:03 CET 2006


Revision: 21261
Author:   eriktorbjorn
Date:     2006-03-13 05:56:19 -0800 (Mon, 13 Mar 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=21261&view=rev

Log Message:
-----------
Things continue to fall into place. In other words, more renamings:

unk3  -> spacing1
unk7  -> spacing2
unk12 -> fractionalSpacing

updateCallback4()  -> update_setNoteSpacing()
updateCallback9()  -> update_stopChannel()
updateCallback15() -> update_stopOtherChannel()
updateCallback17() -> update_setupInstrument()
updateCallback28() -> update_setFractionalNoteSpacing()
updateCallback43() -> update_nop1()
updateCallback47() -> update_nop2()

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-13 11:58:01 UTC (rev 21260)
+++ scummvm/trunk/engines/kyra/sound_adlib.cpp	2006-03-13 13:56:19 UTC (rev 21261)
@@ -106,11 +106,8 @@
 	// These variables have not yet been named, but some of them are partly
 	// known nevertheless:
 	//
-	// unk3  - Unknown. Used for turning off some notes.
 	// unk4  - Unknown. Related to sound timing?
-	// unk7  - Unknown. Used for turning off some notes.
 	// unk11 - Unknown. Used for updating random durations.
-	// unk12 - Unknown. Used for updating unk7.
 	// unk16 - Sound-related. Possibly some sort of pitch bend.
 	// unk18 - Sound-effect. Used for secondaryEffect1()
 	// unk19 - Sound-effect. Used for secondaryEffect1()
@@ -153,7 +150,7 @@
 		int8 unk41;
 		uint8 unk38;
 		uint8 opExtraLevel1;
-		uint8 unk7;
+		uint8 spacing2;
 		uint8 baseFreq;
 		int8 tempo;
 		int8 position;
@@ -162,14 +159,14 @@
 		typedef void (AdlibDriver::*Callback)(Channel&);
 		Callback primaryEffect;
 		Callback secondaryEffect;
-		uint8 unk12;
+		uint8 fractionalSpacing;
 		uint8 opLevel1;
 		uint8 opLevel2;
 		uint8 opExtraLevel3;
 		uint8 twoChan;
 		uint8 unk39;	
 		uint8 unk40;
-		uint8 unk3;
+		uint8 spacing1;
 		uint8 unk11;
 		uint8 unk19;
 		int8 unk18;
@@ -226,20 +223,20 @@
 	int update_setRepeat(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_checkRepeat(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback3(uint8 *&dataptr, Channel &channel, uint8 value);
-	int updateCallback4(uint8 *&dataptr, Channel &channel, uint8 value);
+	int update_setNoteSpacing(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_jump(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_jumpToSubroutine(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_returnFromSubroutine(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_setBaseOctave(uint8 *&dataptr, Channel &channel, uint8 value);
-	int updateCallback9(uint8 *&dataptr, Channel &channel, uint8 value);
+	int update_stopChannel(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_playRest(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_writeAdlib(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback12(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_setBaseNote(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_setupSecondaryEffect1(uint8 *&dataptr, Channel &channel, uint8 value);
-	int updateCallback15(uint8 *&dataptr, Channel &channel, uint8 value);
+	int update_stopOtherChannel(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback16(uint8 *&dataptr, Channel &channel, uint8 value);
-	int updateCallback17(uint8 *&dataptr, Channel &channel, uint8 value);
+	int update_setupInstrument(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_setupPrimaryEffect1(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_removePrimaryEffect1(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_setBaseFreq(uint8 *&dataptr, Channel &channel, uint8 value);
@@ -250,7 +247,7 @@
 	int update_setExtraLevel1(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback26(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_playNote(uint8 *&dataptr, Channel &channel, uint8 value);
-	int updateCallback28(uint8 *&dataptr, Channel &channel, uint8 value);
+	int update_setFractionalNoteSpacing(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_setTempo(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_removeSecondaryEffect1(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_setChannelTempo(uint8 *&dataptr, Channel &channel, uint8 value);
@@ -265,11 +262,11 @@
 	int update_removePrimaryEffect2(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback41(uint8 *&dataptr, Channel &channel, uint8 value);
 	int update_resetToGlobalTempo(uint8 *&dataptr, Channel &channel, uint8 value);
-	int updateCallback43(uint8 *&dataptr, Channel &channel, uint8 value);
+	int update_nop1(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback44(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback45(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback46(uint8 *&dataptr, Channel &channel, uint8 value);
-	int updateCallback47(uint8 *&dataptr, Channel &channel, uint8 value);
+	int update_nop2(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback48(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback49(uint8 *&dataptr, Channel &channel, uint8 value);
 	int updateCallback50(uint8 *&dataptr, Channel &channel, uint8 value);
@@ -638,9 +635,9 @@
 //
 // Each channel also has a duration, indicating how much time is left on the
 // its current task. This duration is decreased by one. As long as it still has
-// not reached zero, the only thing that can happen is that depending on unk3
-// and unk7 the current note may be stopped. Once the duration reaches zero, a
-// new set of musical opcodes are executed.
+// not reached zero, the only thing that can happen is that the note is turned
+// off depending on manual or automatic note spacing. Once the duration reaches
+// zero, a new set of musical opcodes are executed.
 //
 // An opcode is one byte, followed by a variable number of parameters. Since
 // most opcodes have at least one one-byte parameter, we read that as well. Any
@@ -679,9 +676,9 @@
 		channel.position += channel.tempo;
 		if (channel.position < backup) {
 			if (--channel.duration) {
-				if (channel.duration == channel.unk7)
+				if (channel.duration == channel.spacing2)
 					noteOff(channel);
-				if (channel.duration == channel.unk3 && _curChannel != 9)
+				if (channel.duration == channel.spacing1 && _curChannel != 9)
 					noteOff(channel);
 			} else {
 				while (channel.dataptr) {
@@ -760,7 +757,7 @@
 	// normally here are nullfuncs but we set 0 for now
 	channel.primaryEffect = 0;
 	channel.secondaryEffect = 0;
-	channel.unk3 = 0x01;
+	channel.spacing1 = 0x01;
 }
 
 void AdlibDriver::noteOff(Channel &channel) {
@@ -828,8 +825,8 @@
 		channel.duration = duration + (getRandomNr() & channel.unk11);
 		return;
 	}
-	if (channel.unk12) {
-		channel.unk7 = (duration >> 3) * channel.unk12;
+	if (channel.fractionalSpacing) {
+		channel.spacing2 = (duration >> 3) * channel.fractionalSpacing;
 	}
 	channel.duration = duration;
 }
@@ -1208,8 +1205,8 @@
 	return 0;
 }
 
-int AdlibDriver::updateCallback4(uint8 *&dataptr, Channel &channel, uint8 value) {
-	channel.unk3 = value;
+int AdlibDriver::update_setNoteSpacing(uint8 *&dataptr, Channel &channel, uint8 value) {
+	channel.spacing1 = value;
 	return 0;
 }
 
@@ -1238,7 +1235,7 @@
 	return 0;
 }
 
-int AdlibDriver::updateCallback9(uint8 *&dataptr, Channel &channel, uint8 value) {
+int AdlibDriver::update_stopChannel(uint8 *&dataptr, Channel &channel, uint8 value) {
 	channel.priority = 0;
 	if (_curChannel != 9) {
 		noteOff(channel);
@@ -1280,7 +1277,7 @@
 	return 0;
 }
 
-int AdlibDriver::updateCallback15(uint8 *&dataptr, Channel &channel, uint8 value) {
+int AdlibDriver::update_stopOtherChannel(uint8 *&dataptr, Channel &channel, uint8 value) {
 	Channel &channel2 = _channels[value];
 	channel2.duration = 0;
 	channel2.priority = 0;
@@ -1299,7 +1296,7 @@
 	return 2;
 }
 
-int AdlibDriver::updateCallback17(uint8 *&dataptr, Channel &channel, uint8 value) {
+int AdlibDriver::update_setupInstrument(uint8 *&dataptr, Channel &channel, uint8 value) {
 	uint8 *ptr = _soundData;
 	ptr += READ_LE_UINT16(_soundData + (value << 1) + 0x1F4);
 	setupInstrument(_curRegOffset, ptr, channel);
@@ -1385,8 +1382,8 @@
 	return (value != 0);
 }
 
-int AdlibDriver::updateCallback28(uint8 *&dataptr, Channel &channel, uint8 value) {
-	channel.unk12 = value & 7;
+int AdlibDriver::update_setFractionalNoteSpacing(uint8 *&dataptr, Channel &channel, uint8 value) {
+	channel.fractionalSpacing = value & 7;
 	return 0;
 }
 
@@ -1528,7 +1525,7 @@
 	return 0;
 }
 
-int AdlibDriver::updateCallback43(uint8 *&dataptr, Channel &channel, uint8 value) {
+int AdlibDriver::update_nop1(uint8 *&dataptr, Channel &channel, uint8 value) {
 	--dataptr;
 	return 0;
 }
@@ -1564,7 +1561,10 @@
 	return 0;
 }
 
-int AdlibDriver::updateCallback47(uint8 *&dataptr, Channel &channel, uint8 value) {
+// TODO: This is really the same as update_nop1(), so they should be combined
+//       into one single update_nop().
+
+int AdlibDriver::update_nop2(uint8 *&dataptr, Channel &channel, uint8 value) {
 	--dataptr;
 	return 0;
 }
@@ -1874,7 +1874,7 @@
 	COMMAND(update_setRepeat),
 	COMMAND(update_checkRepeat),
 	COMMAND(updateCallback3),
-	COMMAND(updateCallback4),
+	COMMAND(update_setNoteSpacing),
 
 	// 4
 	COMMAND(update_jump),
@@ -1883,7 +1883,7 @@
 	COMMAND(update_setBaseOctave),
 
 	// 8
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 	COMMAND(update_playRest),
 	COMMAND(update_writeAdlib),
 	COMMAND(updateCallback12),
@@ -1891,49 +1891,49 @@
 	// 12
 	COMMAND(update_setBaseNote),
 	COMMAND(update_setupSecondaryEffect1),
-	COMMAND(updateCallback15),
+	COMMAND(update_stopOtherChannel),
 	COMMAND(updateCallback16),
 
 	// 16
-	COMMAND(updateCallback17),
+	COMMAND(update_setupInstrument),
 	COMMAND(update_setupPrimaryEffect1),
 	COMMAND(update_removePrimaryEffect1),
 	COMMAND(update_setBaseFreq),
 
 	// 20
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 	COMMAND(update_setupPrimaryEffect2),
-	COMMAND(updateCallback9),
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
+	COMMAND(update_stopChannel),
 
 	// 24
-	COMMAND(updateCallback9),
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
+	COMMAND(update_stopChannel),
 	COMMAND(update_setPriority),
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 
 	// 28
 	COMMAND(updateCallback23),
 	COMMAND(updateCallback24),
 	COMMAND(update_setExtraLevel1),
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 
 	// 32
 	COMMAND(updateCallback26),
 	COMMAND(update_playNote),
-	COMMAND(updateCallback9),
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
+	COMMAND(update_stopChannel),
 
 	// 36
-	COMMAND(updateCallback28),
-	COMMAND(updateCallback9),
+	COMMAND(update_setFractionalNoteSpacing),
+	COMMAND(update_stopChannel),
 	COMMAND(update_setTempo),
 	COMMAND(update_removeSecondaryEffect1),
 
 	// 40
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 	COMMAND(update_setChannelTempo),
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 	COMMAND(update_setExtraLevel3),
 
 	// 44
@@ -1944,30 +1944,30 @@
 
 	// 48
 	COMMAND(update_changeExtraLevel1),
-	COMMAND(updateCallback9),
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
+	COMMAND(update_stopChannel),
 	COMMAND(updateCallback38),
 
 	// 52
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 	COMMAND(updateCallback39),
 	COMMAND(update_removePrimaryEffect2),
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 
 	// 56
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 	COMMAND(updateCallback41),
 	COMMAND(update_resetToGlobalTempo),
-	COMMAND(updateCallback43),
+	COMMAND(update_nop1),
 
 	// 60
 	COMMAND(updateCallback44),
 	COMMAND(updateCallback45),
-	COMMAND(updateCallback9),
+	COMMAND(update_stopChannel),
 	COMMAND(updateCallback46),
 
 	// 64
-	COMMAND(updateCallback47),
+	COMMAND(update_nop2),
 	COMMAND(updateCallback48),
 	COMMAND(updateCallback49),
 	COMMAND(updateCallback50),
@@ -1981,7 +1981,7 @@
 	// 72
 	COMMAND(update_setTempoReset),
 	COMMAND(updateCallback56),
-	COMMAND(updateCallback9)
+	COMMAND(update_stopChannel)
 };
 #undef COMMAND
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.





More information about the Scummvm-git-logs mailing list