Opened 14 months ago

Closed 13 months ago

Last modified 13 months ago

#14013 closed defect (fixed)

SWORD1: Detection entries seem kind of broken

Reported by: eriktorbjorn Owned by: sev-
Priority: blocker Component: Engine: Sword1
Version: Keywords:
Cc: Game: Broken Sword 1


The detection entries for Broken Sword 1 seem a bit broken to me:

  • Several of them depend on .txt files. Were those ever part of any official releases? I thought cutscene subtitles was a ScummVM addition.
  • Other depend on music files, which probably means that the user can no longer use our compression tools on them without making their version unrecognizable to ScummVM.

Since this is a regression from earlier versions, I think it would be good if it could be looked at before the next stable release.

It's possible that it also affects Broken Sword 2, but I haven't looked at that in any detail.

Change History (15)

comment:1 by lotharsm, 14 months ago

Priority: normalhigh

comment:2 by lotharsm, 14 months ago

Priority: highblocker

comment:3 by sev-, 13 months ago

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

comment:4 by mikrosk, 13 months ago

Resolution: fixed
Status: closednew

I'm sorry but this is still broken (while it worked perfectly in 2.6.1).

Testing on branch-2-7 (linux).

Before your fix (032b9b46):

Matched game IDs for the sword2 engine: sword2-demo-win

  {"general.clu", 0, "7fa2f9cda64d4fb2bc7b42fa16454690", 6295679},

User picked target 'sword1-win' (engine ID 'sword1', game ID 'sword1')...
   Looking for a plugin supporting this target... Broken Sword: The Shadow of the Templars
Running Broken Sword: The Shadow of the Templars (Windows/English)
1m2.wav: 6b43257c8b22decfc7f289da7b653d57, 846792 bytes.
compacts.clu: 7128bc4e99701d99c22e5841051671d3, 200852 bytes.
swordres.rif: 5463362dc77b6efc36e46ac84998bd2f, 59788 bytes.

So I could at least select the correct version (BS1 instead of BS2 demo of sorts).

After your fix:

The game in 'Broken Sword - The Shadow of the Templars (CD - Windows)' seems to be an unknown game variant.

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

Matched game IDs for the sword2 engine: sword2-demo-win

  {"general.clu", 0, "7fa2f9cda64d4fb2bc7b42fa16454690", 6295679},

I.e. no longer possible to select anything.

And with branch-2-7 HEAD it doesn't work *at all*. It just says it couldn't find any game data and bye.

It is also broken in master the same way.

comment:5 by mikrosk, 13 months ago

I want to emphasize that in 2.6.1 the detection worked flawlessly (no BS2 demo offered or anything like that).

comment:6 by sev-, 13 months ago

mikrosk, we changed the detection method and now started collecting the different variants of the games. We never did that before.

Now, on your current problem. Could you please tell what the version is, platform etc, just as the message you quoted suggests?

Also, it would be beneficial if you tell where do files "text.clu" and "docks.clu" are located in your version.

comment:7 by mikrosk, 13 months ago

I'm sorry how do I get all that information? The game itself identifies (in 2.6.1) as "Broken Sword: The Shadow of the Templars", I can choose Czech, English, French, German, Hebrew, Italian, Portuguese (Brazil) and Spanish languages. It is set to default and starts in English. Platform is set to default (which I presume is Windows as it is a Windows game).

TEXT.CLU is located in the game root. There is no file "docks.clu", capitalized or not.

in reply to:  7 comment:8 by antoniou79, 13 months ago

Replying to mikrosk:

I'm sorry how do I get all that information?

Basically the information needed is what specific edition of the game you have.
Is it a CD version of the game or a digital distribution (and if so, which one, Steam, GOG, other)? Was it part of a collection/trilogy/remaster/director's cut release? Is it the English version or another language?

Also please clarify for us, you are trying to add Broken Sword 1: The Shadow of the Templars, correct?

comment:9 by mikrosk, 13 months ago

To be honest, I don't know. It is, erm, "downloaded from the internet". However I have two archives, one from ~2013 and one fairly recent and both versions seem identical when it comes to files present so I'd say it is the classic CD version (I think one has music converted into *.wav and the other one has the original music files).

For language, see above, it is multi-language.

And yes, I am trying to add BS1.

comment:10 by antoniou79, 13 months ago

The honesty is appreciated, but we have a strict rule against supporting versions that are not official, with arbitrary arrangement of resource files and likely the product of software piracy.

comment:11 by mikrosk, 13 months ago

I agree with the last part (that is quite obvious) but I don't agree with the rest -- it is surely just a copy from the original CD. The fact that I have two independent archives acquired 10 years apart and let me again emphasize, they both work in ScummVM 2.6.1, definitely doesn't make it a game "with arbitrary arrangement of resource files", it is a regression in every sense of the word.

If you are referring to my note about the WAV files, that was the official way how to play cut scenes in BS1/BS2 up until ScummVM 1.0:

comment:12 by lotharsm, 13 months ago

First, I want to emphasize that we have a strict anti-piracy rule, so this will be my last comment regarding this.

You can't compare the detection from 2.6.1 with the current one - the old mechanism would basically accept anything that resembles Broken Sword datafiles.

The new detection mechanism is far more sophisticated and only accepts truly valid entries. You are claiming that the copy you have is a copy from the original CD, but we have no way to verify this - it still could be modified.

We will only accept detection entries for versions that we _know_ are from legitimate sources, e.g. copies from an original CD (that you physically own).

comment:13 by mikrosk, 13 months ago

You know, I'm a C++ programmer myself so I absolutely get what are you trying to achieve with the better code and also the anti-piracy attitude (I'm actually using those archives just to test games, as I'm about to contribute my new backend:

But in this case, I'm a ScummVM user. I have a game which worked in the previous official version, now it doesn't work. It is as simple as that. I couldn't care less even if the game came to me from garbage can, it simply used to work and now it doesn't.

So unless there is some official motto for 2.7 "down with the retro piracy!", I can assure you that your bug tracker is going to be flooded with similar bug reports if there is more games which were cut off only because they are available on GOG in a slightly different form.

Quick look on eBay, btw: European PC CD-ROM versions go for about 70 EUR there. That's way too much to satisfy one developer's curiosity whether both of my archives hadn't been modified for some mysterious reason.

So if you change your mind, I'm happy to provide any necessary info and dumps, otherwise have fun after the 2.7 release. :)

comment:14 by sev-, 13 months ago

Resolution: fixed
Status: newclosed

Closing this as fixed.

The game copy you have could be tampered with, so it is not supported.

Also, the Steam version puts files into a flattened structure, and we added the detection entries yesterday. Thus, there is a chance that your version works again.

mikrosk, whatever arguments you have, please avoid justifying the piracy as that harms the project.

comment:15 by mikrosk, 13 months ago

To be clear, I'm not justifying nor supporting piracy and I applaud for your efforts to support existing publishers. My point was based purely on user experience when something worked and then it didn't. I would argue the same way if my CD was physically in my possession and you would tell me that my CD is now unsupported for some odd reason.

I'm a strong supporter of not breaking software features, if they work once, they should work "forever". That's all. So no piracy, just keeping features is what I ask for. :)

Thank you for your work on BS1/BS2. I'll give the latest master a go but I wont complain anymore if it doesn't work.

Note: See TracTickets for help on using tickets.