Opened 10 months ago

Last modified 11 days ago

#14875 new defect

COMMON: Fallback detection of games happen even when there are exact matches

Reported by: eriktorbjorn Owned by:
Priority: normal Component: Common
Version: Keywords:
Cc: Game:

Description (last modified by eriktorbjorn)

I don't know if this is a bug or a feature, though obviously I think it's a bug. When I try to add my copy of Orion Burger, I'm giving the following list of candidates:

  • Orion Burger (DOS/English)
  • Rex Nebular and the Cosmic Gender Bender (DOS/English) - Unknown variant
  • Return of the Phantom (DOS/English) - Unknown variant
  • Dragonsphere (DOS/English) - Unknown variant
  • Once Upon a Forest (DOS/English) - Unknown variant

And the following console message:

The game in 'orionburger' seems to be an unknown game variant.

Please report the following data to the ScummVM team at
https://bugs.scummvm.org/ along with the name of the game you tried to add and
its version, language, etc.:

Matched game IDs for the mads engine: nebular, phantom, dragonsphere, forest

  {"section1.hag", 0, "44773745949eee88762da4832dfb2517", 142360576},

However, the detection entry for Orion Burger does match my version perfectly. There shouldn't be any need for fallback detection.

If I understand detection correctly, ScummVM will call detectGames() once for every engine. It will first look for exact matches, remove any pirated version it finds, and finally - if there are no exact matches - it will do fallback detection.

But when it checks if there are any known games found, that's only the known games for that engine, not the games it has found for other engines so far. Which seems sub-optimal to me.

Change History (5)

comment:1 by eriktorbjorn, 10 months ago

Description: modified (diff)

in reply to:  1 comment:2 by AlessioR, 10 months ago

Replying to eriktorbjorn:

--- MY BAD, I WAS MISSING "HAS" FILE! ---

Hi,
same here with 10bafbe1 on Win10, but orion burger is not on the list anymore.

Last edited 10 months ago by AlessioR (previous) (diff)

comment:3 by criezy, 9 months ago

However, the detection entry for Orion Burger does match my version perfectly. There shouldn't be any need for fallback detection.
If I understand detection correctly, ScummVM will call detectGames() once for every engine. It will first look for exact matches, remove any pirated version it finds, and finally - if there are no exact matches - it will do fallback detection.
But when it checks if there are any known games found, that's only the known games for that engine, not the games it has found for other engines so far. Which seems sub-optimal to me.

This is indeed a known issue.
See https://github.com/scummvm/scummvm/pull/1493 that was an attempt to fix it and the discussion that explains the possible caveats and why that particular attempt was not merged.

comment:4 by sev-, 13 days ago

Priority: normalhigh

This would be nice to fix before the release

comment:5 by sev-, 11 days ago

Priority: highnormal

I revisited and re-read all three PRs related to the problem. And I agree, that how this unfortunate is, but it is safer/better for us to still show the unknown variants dialog.

The proper fix for this particular issue is to add a second file to these games in both engines, e.g. m4 and MADS, thus, making it clash less.

Maybe once we have the integrity service in place, we can collect the needed file md5s more easily.

Alternatively, we could add a hidden or public GUI option to always prefer only recognised games. So, at least the devs could be less annoyed.

The elegant solution to this was in https://github.com/scummvm/scummvm/pull/2959

So, I am lowering priority for it, and willing to implement such option if other devs find this idea appealing.

Note: See TracTickets for help on using tickets.