Opened 8 months ago

Closed 8 months ago

#15022 closed defect (fixed)

PLUMBERS: Plumbers Don't Wear Ties! (Windows) crashes on startup

Reported by: fusefib Owned by: sev-
Priority: normal Component: Engine: Plumbers
Version: Keywords:
Cc: Game:

Description

Game: Plumbers Don't Wear Ties! (Windows/English)

Tested with ScummVM 2.8.0 and 2.8.x, 2.9.x daily builds on Windows 10.

This is a regression from ScummVM 2.7.1; the game crashes when trying to draw the screen.

###

User picked target 'plumbers-win-1' (engine ID 'plumbers', game ID 'plumbers')...

Looking for a plugin supporting this target... Plumbers Don't Wear Ties

MetaEngine: Plumbers Don't Wear Ties matched to Engine: (null)
Engine: (null) matched to MetaEngine: Plumbers Don't Wear Ties
$$ GAME.BIN GAME.BIN in '
$$ SHOWTIME.EXE SHOWTIME.EXE in '
Starting detection for engine 'plumbers' in dir 'M:\Plumbers Don't Wear Ties\'

'f:GAME.BIN': '02c965b11e952ce1ee83019576f5aef5' 41622

Matched file: GAME.BIN
Found game: plumbers ((null) Windows/English) (0)

... new best match, removing all previous candidates

Totally found 1 matches
Running Plumbers Don't Wear Ties! (Windows/English)
GAME.BIN: 02c965b11e952ce1ee83019576f5aef5, 41622 bytes.
FSDirectory::createReadStreamForMember('game.bin') -> 'M:\Plumbers Don't Wear Ties\GAME.BIN'
Opening hashed: game.bin
showScene : 0
updateScene : -1
loadImage : SC99/9900.BMP
FSDirectory::createReadStreamForMember('SC99/9900.BMP') -> 'M:\Plumbers Don't Wear Ties\SC99\9900.BMP'
Opening hashed: SC99/9900.BMP
playSound : SC99/DIA99.WAV
FSDirectory::createReadStreamForMember('SC99/DIA99.WAV') -> 'M:\Plumbers Don't Wear Ties\SC99\DIA99.WAV'
Opening hashed: SC99/DIA99.WAV
stopSound
drawScreen : YES
Assertion failed: srcSurface.format == format, file graphics/surface.cpp, line 182

Daily build from master crashes with:

Assertion failed: _screenFormat.bytesPerPixel == 1, file /data/src/backends/graphics/surfacesdl/surfacesdl-graphics.cpp, line 1806

Change History (4)

comment:1 by digitall, 8 months ago

Replicated on v2.9.0 latest git master. Tested and confirmed that this is a regression between v2.7.1 and v2.8.0. Bisecting now...

comment:2 by digitall, 8 months ago

Bisection indicates:
7dba71d671e352b3c7e0d971d3601c31decb3f1c is the first bad commit
commit 7dba71d671e352b3c7e0d971d3601c31decb3f1c
Author: Vladimir Serbinenko <phcoder@…>
Date: Sun Jan 29 13:38:34 2023 +0100

PLUMBERS: Remove need for highres


Downscale images to 320x240 if highres is not supported.

comment:3 by digitall, 8 months ago

The issue appears to be that this commit split the graphics code out into Windows and 3DO versions, but also had several other changes in this including changing how the screen graphics mode is initialized. The screen blit is a simple blitRectToScreen which requires the same format for screen and source surface. Unclear how that was achieved previously, but the new code does not enforce any format on image surfaces (composite surface uses the same format as source image), so this comes back to enforcing the screen format on the Bitmap Decoder for image loading so it's surface is screen compatible.

comment:4 by sev-, 8 months ago

Owner: set to sev-
Resolution: fixed
Status: newclosed

Fixed

Note: See TracTickets for help on using tickets.