Opened 9 years ago

Closed 7 years ago

#5273 closed defect (fixed)

BS2: Detects games in wrong places

Reported by: fingolfin Owned by: bluegr
Priority: high Component: Engine: Sword2
Keywords: detection Cc:
Game: Broken Sword 2

Description

The Broken Sword 2 engine's detector is not strict enough, making it very easy for a user to incorrectly "Add" BS2 with an incorrect path; more importantly, this screws the mass detector, as a single BS2 installation will result in multiple detected game instances, but only one of the config entries created this way will actually work...
Moreover, it seems unable to distinguish full and demo versions.

As an example, consider this: I have a copy of BS2 installed, copied almost straight from CD; I did *not* put all files together into a single directory; rather, my BS sits in a directors "sword2", which has subdirs "CLUSTERS", "Smacks" and " Sword2" (which contains cd.inf). I can run BS2 quite fine this way.

Next to my "sword2" dir, I also have a "sword2demo" with a BS2 demo; this dir is "flat", having all files next to each other.

If I point the "mass detector" at the directory containing the "sword2" and "sword2demo" dirs, it will add the following *six* entries (each shown abbreviated): It detects the demo twice (once as demo, once as full version); it detects the files in "sword2" twice (once full, once demo); and it detects the files in "sword2/CLUSTERS" twice.

[sword2]
gameid=sword2
path=/MY/PATH/Revolution/sword2demo

[sword2-1]
gameid=sword2
path=/MY/PATH/Revolution/sword2

[sword2-2]
gameid=sword2
path=/MY/PATH/Revolution/sword2/CLUSTERS

[sword2demo]
gameid=sword2demo
path=/MY/PATH/Revolution/sword2/CLUSTERS

[sword2demo-1]
gameid=sword2demo
path=/MY/PATH/Revolution/sword2demo

[sword2demo-2]
gameid=sword2demo
path=/MY/PATH/Revolution/sword2

Two things should be fixed:

1) We should correctly detect demo vs. non-demo. E.g. make an explicit list of all required files (*.clu and cd.inf, and...) for the full and the demo version. This wold also help detect incomplete installations. Or, add MD5 fingerprints of all files.

2) Don't incorrectly detect the "CLUSTERS" dir as a full game installation for people like me who just copy their CD's content straight. My particular example could be addressed by checking for the presence of cd.inf However, a more elaborate scheme may be necessary (in particular, the PSX version doesn't seem to need cd.inf).

We could also at the same time switch the engine to the advanced detector, but that might be overkill.

Ticket imported from: #3049336. Ticket imported from: bugs/5273.

Change History (4)

comment:1 by sev-, 9 years ago

Priority: normalhigh

comment:2 by sev-, 9 years ago

This bug is nice to get fixed before the release. Raising priority for keeping the track.

comment:3 by bluegr, 7 years ago

Keywords: detection added
Owner: set to bluegr
Resolution: fixed
Status: newclosed

comment:4 by bluegr, 7 years ago

Fixed in commit 9d7b55e.

We now properly distinguish between the demo and full version and no longer detect the sword2 files inside the "clusters" folder

Note: See TracTickets for help on using tickets.