[Scummvm-cvs-logs] CVS: scummvm/sky/music adlibchannel.cpp,1.7,1.8 adlibmusic.cpp,1.9,1.10 gmmusic.cpp,1.8,1.9

Robert G?ffringmann lavosspawn at users.sourceforge.net
Sat Jul 12 23:05:05 CEST 2003


Update of /cvsroot/scummvm/scummvm/sky/music
In directory sc8-pr-cvs1:/tmp/cvs-serv9558/sky/music

Modified Files:
	adlibchannel.cpp adlibmusic.cpp gmmusic.cpp 
Log Message:
music support for BASS floppy demo v.0.0109.
adlib doesn't really work, but the rest of the game doesn't either... so who cares, anyway.

Index: adlibchannel.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/adlibchannel.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- adlibchannel.cpp	12 Jul 2003 17:07:53 -0000	1.7
+++ adlibchannel.cpp	13 Jul 2003 06:04:11 -0000	1.8
@@ -42,18 +42,30 @@
 
 	uint16 instrumentDataLoc;
 
-	if (SkyState::_systemVars.gameVersion == 267) {
-		instrumentDataLoc = (_musicData[0x11FC] << 8) | _musicData[0x11FB];
-		_frequenceTable = (uint16*)(_musicData+0x7F4);
-		_registerTable = _musicData+0xDF4;
-		_opOutputTable = _musicData+0xE06;
-		_adlibRegMirror = _musicData+0xF55;
+	if (SkyState::_systemVars.gameVersion == 109) {
+		//instrumentDataLoc = (_musicData[0x11D0] << 8) | _musicData[0x11CF];
+		//_frequenceTable = (uint16*)(_musicData + 0x835);
+		//_registerTable = _musicData + 0xE35;
+		//_opOutputTable = _musicData + 0xE47;
+		//_adlibRegMirror = _musicData + 0xF4A;
+		
+		instrumentDataLoc = READ_LE_UINT16(_musicData + 0x1204);
+		_frequenceTable = (uint16*)(_musicData + 0x868);
+		_registerTable = _musicData + 0xE68;
+		_opOutputTable = _musicData + 0xE7A;
+		_adlibRegMirror = _musicData + 0xF7D;
+	} else if (SkyState::_systemVars.gameVersion == 267) {
+		instrumentDataLoc = READ_LE_UINT16(_musicData + 0x11FB);
+		_frequenceTable = (uint16*)(_musicData + 0x7F4);
+		_registerTable = _musicData + 0xDF4;
+		_opOutputTable = _musicData + 0xE06;
+		_adlibRegMirror = _musicData + 0xF55;
 	} else {
-		instrumentDataLoc = (_musicData[0x1206] << 8) | _musicData[0x1205];
-		_frequenceTable = (uint16*)(_musicData+0x7FE);
-		_registerTable = _musicData+0xDFE;
-		_opOutputTable = _musicData+0xE10;
-		_adlibRegMirror = _musicData+0xF5F;
+		instrumentDataLoc = READ_LE_UINT16(_musicData + 0x1205);
+		_frequenceTable = (uint16*)(_musicData + 0x7FE);
+		_registerTable = _musicData + 0xDFE;
+		_opOutputTable = _musicData + 0xE10;
+		_adlibRegMirror = _musicData + 0xF5F;
 	}
 
 	_instrumentMap = _musicData+instrumentDataLoc;

Index: adlibmusic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/adlibmusic.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- adlibmusic.cpp	12 Jul 2003 17:07:53 -0000	1.9
+++ adlibmusic.cpp	13 Jul 2003 06:04:11 -0000	1.10
@@ -85,12 +85,18 @@
 
 void SkyAdlibMusic::setupPointers(void) {
 
-	if (SkyState::_systemVars.gameVersion == 267) {
+	if (SkyState::_systemVars.gameVersion == 109) {
 		// disk demo uses a different adlib driver version, some offsets have changed
-		_musicDataLoc = (_musicData[0x11F8] << 8) | _musicData[0x11F7];
+		//_musicDataLoc = (_musicData[0x11CC] << 8) | _musicData[0x11CB];
+		//_initSequence = _musicData + 0xEC8;
+		
+		_musicDataLoc = READ_LE_UINT16(_musicData + 0x1200);
+		_initSequence = _musicData + 0xEFB;
+	} else if (SkyState::_systemVars.gameVersion == 267) {
+		_musicDataLoc = READ_LE_UINT16(_musicData + 0x11F7);
 		_initSequence = _musicData + 0xE87;
 	} else {
-		_musicDataLoc = (_musicData[0x1202] << 8) | _musicData[0x1201];
+		_musicDataLoc = READ_LE_UINT16(_musicData + 0x1201);
 		_initSequence = _musicData + 0xE91;
 	}
 	_nextMusicPoll = 0;

Index: gmmusic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/music/gmmusic.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- gmmusic.cpp	12 Jul 2003 08:55:23 -0000	1.8
+++ gmmusic.cpp	13 Jul 2003 06:04:11 -0000	1.9
@@ -20,6 +20,7 @@
  */
 
 #include "sky/music/gmmusic.h"
+#include "sky/sky.h"
 
 void SkyGmMusic::passTimerFunc(void *param) {
 
@@ -69,8 +70,13 @@
 
 void SkyGmMusic::setupPointers(void) {
 
-	_musicDataLoc = (_musicData[0x7DD] << 8) | _musicData[0x7DC];
-	_sysExSequence = ((_musicData[0x7E1] << 8) | _musicData[0x7E0]) + _musicData;
+	if (SkyState::_systemVars.gameVersion == 109) {
+		_musicDataLoc = (_musicData[0x79C] << 8) | _musicData[0x79B];
+		_sysExSequence = _musicData + 0x1EF2;
+	} else {
+		_musicDataLoc = (_musicData[0x7DD] << 8) | _musicData[0x7DC];
+		_sysExSequence = ((_musicData[0x7E1] << 8) | _musicData[0x7E0]) + _musicData;
+	}
 }
 
 void SkyGmMusic::setupChannels(uint8 *channelData) {





More information about the Scummvm-git-logs mailing list