[Scummvm-git-logs] scummvm master -> 65f05b4d78ddd9a5dc54285ea085d4c1595c4eba
fracturehill
noreply at scummvm.org
Sat Nov 4 12:32:19 UTC 2023
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
fecfd1b462 AD: Improve archive scanning sanity check
0260875821 NANCY: Fix Overlay crash
65f05b4d78 NANCY: Do not crash when attempting to decode bad video frame
Commit: fecfd1b462e2a8bbf12f295906fbe8817c6936a8
https://github.com/scummvm/scummvm/commit/fecfd1b462e2a8bbf12f295906fbe8817c6936a8
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-11-04T14:31:37+02:00
Commit Message:
AD: Improve archive scanning sanity check
Improved the game entry sanity check for entries with
archive scanning so it no longer assumes an A: prefix in the
md5 sum is unaccompanied by other prefixes.
Changed paths:
engines/advancedDetector.cpp
diff --git a/engines/advancedDetector.cpp b/engines/advancedDetector.cpp
index 18a629d5243..f73e358a09b 100644
--- a/engines/advancedDetector.cpp
+++ b/engines/advancedDetector.cpp
@@ -1171,7 +1171,7 @@ void AdvancedMetaEngineDetection::detectClashes() const {
break;
}
- if (fileDesc.md5 && fileDesc.md5[0] == 'A' && fileDesc.md5[1] == ':') {
+ if (gameFileToMD5Props(&fileDesc, ((const ADGameDescription *)descPtr)->flags) & kMD5Archive) {
Common::StringTokenizer tok(fileDesc.fileName, ":");
uint numTokens = 0;
Commit: 02608758214384e540e83867abf7f7751ddd0eb5
https://github.com/scummvm/scummvm/commit/02608758214384e540e83867abf7f7751ddd0eb5
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-11-04T14:31:37+02:00
Commit Message:
NANCY: Fix Overlay crash
Fixed a divide by 0 crash in nancy2 caused by bad data
in an Overlay action record
Changed paths:
engines/nancy/action/overlay.cpp
diff --git a/engines/nancy/action/overlay.cpp b/engines/nancy/action/overlay.cpp
index 5b184c274da..38af9db5866 100644
--- a/engines/nancy/action/overlay.cpp
+++ b/engines/nancy/action/overlay.cpp
@@ -197,7 +197,7 @@ void Overlay::execute() {
_nextFrameTime = _currentFrameTime + _frameTime;
} else {
uint32 timeDiff = _currentFrameTime - _nextFrameTime;
- frameDiff = timeDiff / _frameTime;
+ frameDiff = timeDiff / MAX<uint32>(_frameTime, 1); // Fix for nancy2 scene 1090, where _frameTime is 0
_nextFrameTime += _frameTime * frameDiff;
}
Commit: 65f05b4d78ddd9a5dc54285ea085d4c1595c4eba
https://github.com/scummvm/scummvm/commit/65f05b4d78ddd9a5dc54285ea085d4c1595c4eba
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-11-04T14:31:37+02:00
Commit Message:
NANCY: Do not crash when attempting to decode bad video frame
There's at least one scene in an early nancy1 release that
reports a last frame of 51, when the video itself only contains
50 frames; attempting to decode that frame would crash
throw a warning and crash the engine. This warning has
now been demoted to debug output, and the decoder will
now gracefully return the last valid frame any time a
nonexistent frame is requested from it.
Changed paths:
engines/nancy/detection.h
engines/nancy/video.cpp
diff --git a/engines/nancy/detection.h b/engines/nancy/detection.h
index af92635621f..1afe32cd0cc 100644
--- a/engines/nancy/detection.h
+++ b/engines/nancy/detection.h
@@ -54,7 +54,8 @@ enum NancyDebugChannels {
kDebugEngine = 1 << 0,
kDebugActionRecord = 1 << 1,
kDebugScene = 1 << 2,
- kDebugSound = 1 << 3
+ kDebugSound = 1 << 3,
+ kDebugVideo = 1 << 4
};
#define GAMEOPTION_PLAYER_SPEECH GUIO_GAMEOPTIONS1
diff --git a/engines/nancy/video.cpp b/engines/nancy/video.cpp
index 7f7b77795b8..a89d74bbe05 100644
--- a/engines/nancy/video.cpp
+++ b/engines/nancy/video.cpp
@@ -279,8 +279,8 @@ const Graphics::Surface *AVFDecoder::AVFVideoTrack::decodeFrame(uint frameNr) {
}
if (frameNr >= _chunkInfo.size()) {
- warning("Frame %d doesn't exist", frameNr);
- return nullptr;
+ debugC(kDebugVideo, "Frame %d doesn't exist, returning last frame %d", frameNr, _chunkInfo.size() - 1);
+ return decodeFrame(_chunkInfo.size() - 1);
}
const ChunkInfo &info = _chunkInfo[frameNr];
More information about the Scummvm-git-logs
mailing list