aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rw-r--r--engines/tinsel/bmv.cpp36
2 files changed, 6 insertions, 35 deletions
diff --git a/NEWS b/NEWS
index 158eb7764f..0fc261235c 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,10 @@ For a more comprehensive changelog for the latest experimental SVN code, see:
KYRA:
- Fixed a bug which caused the DOS versions to crash before the credits when AdLib
music is selected.
-
+
+ Tinsel:
+ - Fix video playback regression in Discworld 2.
+
PSP port: (Also forgot to mention in 1.1.0)
- Added plugin support which allows the PSP Phat to run every game.
- Added a new virtual keyboard optimized for rapid D-Pad input.
diff --git a/engines/tinsel/bmv.cpp b/engines/tinsel/bmv.cpp
index f6e44cea1c..938507c3f9 100644
--- a/engines/tinsel/bmv.cpp
+++ b/engines/tinsel/bmv.cpp
@@ -232,17 +232,8 @@ static void PrepBMV(byte *ScreenBeg, const byte *sourceData, int length, short d
}
switch (loopCtr) {
- case 1:
+ case 1: {
// @_rDelta:
-#if 1
- if (forwardDirection) {
- memcpy(dst, dst + ebx, byteLen);
- dst += byteLen;
- } else {
- dst -= byteLen;
- memcpy(dst + 1, dst + ebx + 1, byteLen);
- }
-#else
const byte *saved_src = src; // Save the source pointer
src = dst + ebx; // Point it to existing data
@@ -254,45 +245,23 @@ static void PrepBMV(byte *ScreenBeg, const byte *sourceData, int length, short d
}
src = saved_src;
-#endif
break;
+ }
case 2:
// @_rRaw
// Copy data from source to dest
-#if 1
- if (forwardDirection) {
- memcpy(dst, src, byteLen);
- dst += byteLen;
- src += byteLen;
- } else {
- dst -= byteLen;
- src -= byteLen;
- memcpy(dst + 1, src + 1, byteLen);
- }
-#else
while (byteLen > 0) {
*dst = *src;
NEXT_BYTE(src);
NEXT_BYTE(dst);
--byteLen;
}
-#endif
break;
case 3:
// @_rRun
// Repeating run of data
-#if 1
- if (forwardDirection) {
- memset(dst, *(dst - 1), byteLen);
- dst += byteLen;
- } else {
- eax = *(dst + 1);
- dst -= byteLen;
- memset(dst + 1, eax, byteLen);
- }
-#else
eax = forwardDirection ? *(dst - 1) : *(dst + 1);
while (byteLen > 0) {
@@ -300,7 +269,6 @@ static void PrepBMV(byte *ScreenBeg, const byte *sourceData, int length, short d
NEXT_BYTE(dst);
--byteLen;
}
-#endif
break;
default:
break;