[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