[Scummvm-cvs-logs] scummvm master -> f7025c4cab7a1e115b31f1283bea3797876dbf54

lskovlun lskovlun at sprogklog.dk
Mon Feb 22 01:27:56 CET 2016


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
11d6da4ef6 SCI32: Document purpose of 993.voc
f7025c4cab SCI: Make Pharkas CD opcodes return explicit values. Document.


Commit: 11d6da4ef6f576bdf42e5315ab447dbb5accc715
    https://github.com/scummvm/scummvm/commit/11d6da4ef6f576bdf42e5315ab447dbb5accc715
Author: Lars Skovlund (lskovlun at sprogklog.dk)
Date: 2016-02-22T01:04:18+01:00

Commit Message:
SCI32: Document purpose of 993.voc

Changed paths:
    engines/sci/engine/kernel.h



diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h
index 53f5878..92916ec 100644
--- a/engines/sci/engine/kernel.h
+++ b/engines/sci/engine/kernel.h
@@ -75,6 +75,10 @@ struct SciWorkaroundEntry;	// from workarounds.h
  * vocab.997. This results in much more readable code. Thus, this vocabulary isn't
  * used at all.
  *
+ * 993.voc (unneeded) - Contains the SCI3 equivalent of vocab.994; like its predecessor,
+ * the raw selector numbers can be deduced and used instead. In fact, one version of this
+ * file has turned out to cover all versiona of SCI3.
+ *
  * SCI0 parser vocabularies:
  * - vocab.901 / 901.voc - suffix vocabulary
  * - vocab.900 / 900.voc - parse tree branches


Commit: f7025c4cab7a1e115b31f1283bea3797876dbf54
    https://github.com/scummvm/scummvm/commit/f7025c4cab7a1e115b31f1283bea3797876dbf54
Author: Lars Skovlund (lskovlun at sprogklog.dk)
Date: 2016-02-22T01:04:56+01:00

Commit Message:
SCI: Make Pharkas CD opcodes return explicit values. Document.

Changed paths:
    engines/sci/engine/ksound.cpp



diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp
index 032191e..32636fb 100644
--- a/engines/sci/engine/ksound.cpp
+++ b/engines/sci/engine/ksound.cpp
@@ -233,19 +233,38 @@ reg_t kDoAudio(EngineState *s, int argc, reg_t *argv) {
 #endif
 		}
 
-		// 3 new subops in Pharkas. kDoAudio in Pharkas sits at seg026:038C
+		// 3 new subops in Pharkas CD (including CD demo). kDoAudio in Pharkas sits at seg026:038C
 	case 11:
 		// Not sure where this is used yet
 		warning("kDoAudio: Unhandled case 11, %d extra arguments passed", argc - 1);
 		break;
 	case 12:
-		// Seems to be some sort of audio sync, used in Pharkas. Silenced the
-		// warning due to the high level of spam it produces. (takes no params)
-		//warning("kDoAudio: Unhandled case 12, %d extra arguments passed", argc - 1);
+		// SSCI calls this function with no parameters from
+		// the TalkRandCycle class and branches on the return
+		// value like a boolean. The conjectured purpose of
+		// this function is to ensure that the talker's mouth
+		// does not move if there is read jitter (slow CD
+		// drive, scratched CD). The old behavior here of not
+		// doing anything caused a nonzero value to be left in
+		// the accumulator by chance. This is equivalent, but
+		// more explicit.
+
+		return make_reg(0, 1);
 		break;
 	case 13:
-		// Used in Pharkas whenever a speech sample starts (takes no params)
-		//warning("kDoAudio: Unhandled case 13, %d extra arguments passed", argc - 1);
+		// SSCI returns a serial number for the played audio
+		// here, used in the PointsSound class. The reason is severalfold:
+
+		// 1. SSCI does not support multiple wave effects at once
+		// 2. FPFP may disable its icon bar during the points sound.
+		// 3. Each new sound preempts any sound already playing.
+		// 4. If the points sound is interrupted before completion,
+		// the icon bar could remain disabled.
+
+		// Since points (1) and (3) do not apply to us, we can simply
+		// return a constant here. This is equivalent to the
+		// old behavior, as above.
+		return make_reg(0, 1);
 		break;
 	case 17:
 		// Seems to be some sort of audio sync, used in SQ6. Silenced the






More information about the Scummvm-git-logs mailing list