Opened 8 years ago

Closed 8 years ago

#5993 closed defect (fixed)

SCUMM: Detecting Loom PCE without 16bpp support crashes

Reported by: lordhoto Owned by: lordhoto
Priority: normal Component: Engine: SCUMM
Keywords: detection Cc:
Game: Loom

Description

Platforms I could reproduce this with: Linux/amd64 (with --disable-16bit) and iPhone

When the 16bit OSystem support is disabled ScummVM "crashes" when trying to detect Loom PC-Engine. The following assertion does not hold:scummvm: engines/scumm/detection.cpp:593: void Scumm::detectGames(const Common::FSList&, Common::List<Scumm::DetectorResult>&, const char*): Assertion `dr.game.gameid != 0' failed.

Ticket imported from: #3493317. Ticket imported from: bugs/5993.

Change History (8)

comment:1 by lordhoto, 8 years ago

Component: Engine: SCUMM
Game: Loom

comment:2 by BenCastricum, 8 years ago

does this patch fix the assertion failure?

http://scummvm.bencastricum.nl/loompce-test.patch

comment:3 by lordhoto, 8 years ago

That prevents the assertion from failing, but it makes Loom PC-Engine get detected, even when 16bpp support is disabled. That's not really what we want though, since the game just cannot run without 16bpp support. So as soon as one tries to start the game, the game will tell you that the color mode is not supported, which isn't really nice.

comment:4 by BenCastricum, 8 years ago

Ok, then this should fix it by skipping the entry while detecting.

http://scummvm.bencastricum.nl/fix-bug3493317.patch

I can add this patch to my next git hub pull request if desired.

comment:5 by lordhoto, 8 years ago

It would probably be best when you open a pull request with the patch to get the attention of someone familiar with the SCUMM detector code.

comment:6 by digitall, 8 years ago

Owner: set to lordhoto
Resolution: fixed

comment:7 by digitall, 8 years ago

Lordhoto: Since this fix has been merged to Git with e2238e4a25904f36f3cf3f91b9a4db7db22f6508, can this be closed now?

comment:8 by lordhoto, 8 years ago

Status: newclosed
Note: See TracTickets for help on using tickets.