[Scummvm-git-logs] scummvm master -> 1788ca8dd015ef96fd33b6538bcfe2bbf9ffa9e7

sev- noreply at scummvm.org
Fri Mar 15 23:20:50 UTC 2024


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:
d679efc4f8 PLUMBERS: Fix graphics initialization for Windows version
8077a8f8fd PLUMBERS: Use more conventional pixel format for 3DO version
1788ca8dd0 NEWS: Copy over 2.8.1 release notes


Commit: d679efc4f8e5367d340daf6950251ea5677b4c28
    https://github.com/scummvm/scummvm/commit/d679efc4f8e5367d340daf6950251ea5677b4c28
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-03-16T00:18:13+01:00

Commit Message:
PLUMBERS: Fix graphics initialization for Windows version

Changed paths:
    engines/plumbers/windows.cpp


diff --git a/engines/plumbers/windows.cpp b/engines/plumbers/windows.cpp
index f569f292e1d..d685558d4f7 100644
--- a/engines/plumbers/windows.cpp
+++ b/engines/plumbers/windows.cpp
@@ -64,9 +64,9 @@ void PlumbersGameWindows::startGraphics() {
 
 	Graphics::ModeWithFormatList modes = {
 		// First try for a 640x480 mode
-		Graphics::ModeWithFormat(640, 480),
+		Graphics::ModeWithFormat(640, 480, Graphics::PixelFormat::createFormatCLUT8()),
 		// System doesn't support it, so fall back on 320x240 mode
-		Graphics::ModeWithFormat(320, 240),
+		Graphics::ModeWithFormat(320, 240, Graphics::PixelFormat::createFormatCLUT8()),
 	};
 
 	int modeIdx = initGraphicsAny(modes);


Commit: 8077a8f8fd599c4a7db2937aacf7221700bfb397
    https://github.com/scummvm/scummvm/commit/8077a8f8fd599c4a7db2937aacf7221700bfb397
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-03-16T00:18:22+01:00

Commit Message:
PLUMBERS: Use more conventional pixel format for 3DO version

Also, convert the 3DO format to target format

Changed paths:
    engines/plumbers/3do.cpp
    engines/plumbers/plumbers.h


diff --git a/engines/plumbers/3do.cpp b/engines/plumbers/3do.cpp
index 86ba31653a9..2b4f7283846 100644
--- a/engines/plumbers/3do.cpp
+++ b/engines/plumbers/3do.cpp
@@ -395,7 +395,7 @@ void PlumbersGame3DO::loadMikeDecision(const Common::String &dirname, const Comm
 	Common::String baseName = dirname + "/" + baseFilename;
 	debugC(1, kDebugGeneral, "%s : %s", __FUNCTION__, baseName.c_str());
 	Graphics::Surface *surf = new Graphics::Surface();
-	surf->create(_screenW, _screenH, Graphics::PixelFormat(2, 5, 5, 5, 1, 10,  5,  0, 15));
+	surf->create(_screenW, _screenH, _targetFormat);
 
 	delete _compositeSurface;
 	_compositeSurface = nullptr;
@@ -409,17 +409,26 @@ void PlumbersGame3DO::loadMikeDecision(const Common::String &dirname, const Comm
 			error("unable to load image %s", nameP.toString().c_str());
 
 		_image->loadStream(fileP);
-		surf->copyRectToSurface(*_image->getSurface(), p.x, p.y,
+		Graphics::Surface *conv = _image->getSurface()->convertTo(_targetFormat);
+		surf->copyRectToSurface(*conv, p.x, p.y,
 					Common::Rect(0, 0, sz.x, sz.y));
 
+		conv->free();
+		delete conv;
+
 		Common::File fileW;
 		Common::Path nameW(Common::String::format("%s%dW.CEL", baseName.c_str(), i + 1));
 		if (!fileW.open(nameW))
 			error("unable to load image %s", nameW.toString().c_str());
 
 		_image->loadStream(fileW);
-		surf->copyRectToSurface(*_image->getSurface(), p.x + sz.x, p.y,
+		conv = _image->getSurface()->convertTo(_targetFormat);
+		surf->copyRectToSurface(*conv, p.x + sz.x, p.y,
 					Common::Rect(0, 0, sz.x, sz.y));
+
+		conv->free();
+		delete conv;
+
 	}
 
 	_compositeSurface = surf;
@@ -432,6 +441,7 @@ void PlumbersGame3DO::loadMikeDecision(const Common::String &dirname, const Comm
 void PlumbersGame3DO::postSceneBitmaps() {
 	if (_scenes[_curSceneIdx]._style == Scene::STYLE_VIDEO) {
 		_videoDecoder = new Video::ThreeDOMovieDecoder();
+		_videoDecoder->setOutputPixelFormat(_targetFormat);
 		_curChoice = 0;
 		if (!_videoDecoder->loadFile(Common::Path(_scenes[_curSceneIdx]._sceneName))) {
 			_actions.push(ChangeScene);
@@ -446,7 +456,7 @@ void PlumbersGame3DO::postSceneBitmaps() {
 		_actions.push(ChangeScene);
 		return;
 	}
-	
+
 	_showScoreFl = true;
 	_leftButtonDownFl = true;
 	_setDurationFl = false;
@@ -478,29 +488,35 @@ void PlumbersGame3DO::startGraphics() {
 	_ctrlHelpImage = new Image::Cel3DODecoder();
 	_screenW = 320;
 	_screenH = 240;
-	Graphics::PixelFormat pf(2, 5, 5, 5, 1, 10,  5,  0, 15);
-	initGraphics(_screenW, _screenH, &pf);
+	_targetFormat = Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0);
+
+	initGraphics(_screenW, _screenH, &_targetFormat);
 }
 
 void PlumbersGame3DO::blitImage() {
 	const Graphics::Surface *surface;
 	bool ctrlHelp = false;
+	bool needConv = false;
+
 	if (_leftShoulderPressed && _leftButtonDownFl && _ctrlHelpImage) {
 		surface = _ctrlHelpImage->getSurface();
 		ctrlHelp = true;
+		needConv = true;
 	} else if (_videoDecoder)
 		surface = _videoDecoder->decodeNextFrame();
 	else if (_compositeSurface)
 		surface = _compositeSurface;
-	else
+	else {
 		surface = _image->getSurface();
+		needConv = true;
+	}
 
 	Graphics::Surface modSurf;
 	bool modded = false;
+	Graphics::Surface *conv = nullptr;
 
 	if (_hiLite >= 0 && _leftButtonDownFl && !ctrlHelp) {
-		Graphics::PixelFormat pf(2, 5, 5, 5, 1, 10,  5,  0, 15);
-		modSurf.create(surface->w, surface->h, pf);
+		modSurf.create(surface->w, surface->h, _targetFormat);
 		modSurf.copyRectToSurface(*surface, 0, 0, Common::Rect(0, 0, surface->w, surface->h));
 		const Common::Rect rec = _scenes[_curSceneIdx]._choices[_hiLite]._region;
 
@@ -511,17 +527,25 @@ void PlumbersGame3DO::blitImage() {
 				r = (*p >> 10) & 0x1f;
 				g = (*p >> 5) & 0x1f;
 				b = (*p >> 0) & 0x1f;
+
 				// TODO: figure out the correct multipliers
-				r = MIN<int>(3 * r / 2, 0x1f);
-				g = MIN<int>(3 * g / 2, 0x1f);
-				b = MIN<int>(3 * b / 2, 0x1f);
-				*p = (*p & 0x8000) | (r << 10) | (g << 5) | (b);
+				*p = _targetFormat.RGBToColor(3 * r / 2, 3 * g / 2, 3 * b / 2);
 			}
 		}
 		modded = true;
 	}
 
+	if (needConv) {
+		conv = surface->convertTo(_targetFormat);
+		surface = conv;
+	}
+
 	blitImageSurface(modded ? &modSurf : surface);
+
+	if (needConv) {
+		conv->free();
+		delete conv;
+	}
 }
 
 void PlumbersGame3DO::skipVideo() {
diff --git a/engines/plumbers/plumbers.h b/engines/plumbers/plumbers.h
index 9824ec9175e..a8c4fe8cd17 100644
--- a/engines/plumbers/plumbers.h
+++ b/engines/plumbers/plumbers.h
@@ -113,6 +113,8 @@ protected:
 	int	 _totScene;
 	long _totScore;
 
+	Graphics::PixelFormat _targetFormat;
+
 	Image::ImageDecoder *_image;
 	Console *_console;
 	Video::VideoDecoder *_videoDecoder;


Commit: 1788ca8dd015ef96fd33b6538bcfe2bbf9ffa9e7
    https://github.com/scummvm/scummvm/commit/1788ca8dd015ef96fd33b6538bcfe2bbf9ffa9e7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-03-16T00:20:26+01:00

Commit Message:
NEWS: Copy over 2.8.1 release notes

Changed paths:
    NEWS.md


diff --git a/NEWS.md b/NEWS.md
index 86b8d1d7aed..b275674b47a 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -18,6 +18,96 @@ For a more comprehensive changelog of the latest experimental code, see:
    - Added support for Russian CD fan-translation for Ringworld.
 
 
+#### 2.8.1 (2024-03-31)
+
+ General:
+   - Fixed GLSL version parsing on some OpenGL ES2 platforms.
+   - Don't try to use shaders on old OpenGL implementations.
+
+ AGI:
+   - Fixed Space Quest 1 version 1.0X freezing in the skimmer.
+   - Fixed Mixed-Up Mother Goose message boxes during nursery rhymes.
+   - Fixed Mixed-Up Mother Goose graphics in Amiga version.
+   - Fixed Gold Rush clock time at Fast and Fastest speeds.
+   - Fixed Atari ST version of Manhunter 1 not starting.
+   - Fixed Tandy CoCo3 version of Leisure Suit Larry 1 not starting.
+   - Fixed Tandy CoCo3 unofficial ports not starting.
+   - Fixed Amiga menus in Space Quest 1, Manhunter 1, and Manhunter 2.
+   - Fixed Graham facing away from the king in King's Quest 1.
+   - Fixed Alexander getting stuck on the stairs in King's Quest 3.
+   - Fixed Larry being able to shoplift in Leisure Suit Larry 1.
+   - Fixed ducks not jumping at the start of Donald Duck's Playground.
+   - Fixed instant death in fan game "Phil's Quest: The Search for Tolbaga".
+   - Fixed buttons freezing in fan game "DG: The AGIMouse Adventure".
+   - Fixed unrecognized words in fan game "V - The Graphical Adventure".
+   - Added detection for Macintosh version of Mixed-Up Mother Goose.
+
+ AGS:
+   - Updated detection tables.
+   - Simplified character import from Sierra games for QfG2 AGDI.
+   - Fixed graphical glitch affecting Unavowed and Heroine's Quest.
+   - Fixed partial outlines for some letters in Kathy Rain.
+   - Fixed crash in Alum.
+   - Added stub to prevent crash at the beginning of Falcon City.
+
+ Broken Sword 2:
+   - Fixed crash when quitting the game while it was paused.
+
+ MM:
+   - Enabled engine, allowing MM1 and Xeen to be compiled.
+   - Added MT32/LAPC-1 support for Xeen engine.
+   - Fixed Xeen regression which caused some sound effects to stop abruptly.
+
+ mTropolis:
+   - Fixed crash in Muppet Treasure Island on some platforms.
+   - Fixed jewel puzzle in Muppet Treasure Island not being randomized.
+
+ NANCY:
+   - Fixed the telephone hints in Secrets Can Kill.
+   - Fixed the crashing and drawing issues on ARM machines when playing
+     Message in a Haunted Mansion's maze minigame.
+   - Fixed the 'M' keyboard key not working in Message in a Haunted Mansion.
+   - Allowed general keymaps to be shown in the engine Keymaps menu.
+   - Virtual keyboard now correctly triggers on/off wherever text input is needed.
+
+ SCUMM:
+   - Fix screen corruption (and sometimes even crashes) in Mac Loom and
+     Indiana Jones and the Last Crusade, most noticeably when using menu
+     shortcut keys.
+   - Fix enabling/disabling of Open and Save in Mac Indiana Jones and the Last
+     Crusade.
+
+ TWINE:
+   - Fix ladder climbing regression.
+   - Fix scenery zoom issue.
+   - Fix animation glitches after using the holomap.
+
+ Ultima:
+   - Fix Ultima VIII hidden minimap blocking keyring use.
+   - Fix Ultima VIII page breaks in books.
+   - Fix Ultima VIII text centering for plaques.
+   - Fix Ultima VIII crash on dragging items to screen edge.
+   - Fix Ultima VIII unexpected jumping on left click.
+   - Fix Ultima VIII camera during cutscenes for Shrine of the Ancient Ones.
+   - Fix Ultima VIII invalid placement of items within containers.
+   - Fix Ultima VIII never-ending lava sounds.
+
+ V-Cruise:
+   - Fixed crash in Reah: Face the Unknown and Schizm: Mysterious Journey
+     when music is muted.
+
+ Android port:
+   - Fixed crash in built-in help with German language.
+
+ Atari port:
+   - Fixed crash when exiting ScummVM.
+   - Fixed BBVS (and possibly others) gameplay by using more precise math model.
+
+ macOS port:
+   - Fixed a problem where some Mac games would not load resources correctly.
+   - Updated application icon to conform with modern standards.
+
+
 #### 2.8.0 "Mysteries, Mammoths, and Muppets" (2023-12-30)
 
  New games:




More information about the Scummvm-git-logs mailing list