Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#9737 closed defect (fixed)

SHERLOCK: Serrated Scalpel italian fan traslation unknown MD5

Reported by: dego93 Owned by: dreammaster
Priority: normal Component: Engine: Sherlock
Keywords: Cc: maiolica
Game: Sherlock Holmes: Case of the Serrated Scalpel

Description

Scummvm version 1.10.0 git3186-g442edb6

the game semms to be unknown

Game: The lost file of sherlock holmes - The case of the serrated scalpel
launguage: italian fan traslation

"music.lib", 0, "68ae2f7684ecf903bd60a00bb6bae195", 366465
"talk.lib", 0, "1a547f96476a3a50cf6f0d599a4f5bcc", 247406

Attachments (1)

patch.diff (683.0 KB ) - added by maiolica 3 years ago.

Download all attachments as: .zip

Change History (14)

comment:1 by dego93, 3 years ago

Component: --Unset--Engine: Sherlock

comment:2 by dego93, 3 years ago

Summary: The case of the serrated scalpel italian fan traslation unknownThe case of the serrated scalpel italian fan traslation unknown MD5

comment:3 by dreammaster, 3 years ago

Summary: The case of the serrated scalpel italian fan traslation unknown MD5SHERLOCK: Serrated Scalpel italian fan traslation unknown MD5

Because an MD5 for it is added in, I need more information about this version.

  • Is it a complete, or in progress translation?
  • Where is it available from? We need to be sure any fan translation is only providing a patch file, and not the full game.
  • Also, is the game completable in ScummVM using the translation?

comment:4 by dreammaster, 3 years ago

Sorry, I meant *Before*, not, *Because*

comment:5 by dego93, 3 years ago

the translation is completed

the site is http://www.oldgamesitalia.net/traduzioni/lost-files-sherlock-holmes-case-serrated-scalpel

i can't start the game in scummvm with the translation

comment:6 by dreammaster, 3 years ago

Thanks. It does seem like it does just install the translation over a user's existing copy, which is good. However, it comes with an executable installer, which I'm a bit leery of blinding running on my system. And I don't have any convenient VM set up right now that I could run it in.

I'm honestly not sure how to proceed.. I don't want to just blindly add in the MD5 unless someone is willing to run the installer and verify whether this resulting patched version will actually run when it has a proper detection entry. And I'm not in a position myself to do that anytime soon.

comment:7 by dreammaster, 3 years ago

Owner: set to dreammaster
Resolution: fixed
Status: newclosed

On reflection, I've decided to commit in the detection entry and leave it flagged as unstable. So it will only be available in daily builds, and not the release ones yet. If you, or anyone else, can test the game and ensure it works fine, I'll flag it as properly supported.

comment:8 by maiolica, 3 years ago

Cc: maiolica added

I've tested the game with the patch, 2 issues:

  • the game is detected as spanish: The Case of the Serrated Scalpel (DOS/Spanish)
  • ScummVM crashes when, after talking to Watson in the first screen, the user clicks on any dialogue choice:
    Microsoft Visual C++ Runtime Library
    Assertion failed
    File: engines/sherlock/fonts.cpp
    Line: 193
    
    Expression: c > 32
    

(tested with ScummVM latest git on Windows 7)

comment:9 by dreammaster, 3 years ago

Whoops. My fault on the first point. I didn't change the language in the detection entry I copied and modified from Spanish to Italian.

As for the second point, I was afraid of that. Sherlock has it's own mini-scripting system in text strings. Normally characters/bytes can be from 0 to 255, but only a subset are used for actual printable characters. So the original English version used some of the higher numbers for various different instructions. Unfortunately, when foreign language versions were introduced, they started including extra accented characters, and they had to start shifting around the indexes of these opcodes. That's essentially what the error means.. it likely got confused from executing some of these opcodes incorrectly, and then gave an error.

Tell me, it's kind of hard for me to tell for sure from the webpage.. is the patch based on the English version? In which case, changing the detection entry to Italian may stop it doing the special changes it does for the Spanish version and fix your problem.

comment:10 by maiolica, 3 years ago

I am not entirely sure on which version the patch was based on, I suspect one of the foreign versions, since accented characters are part of the italian language.
If it can help you I'm attaching a .diff file that patch the english version to the italian one.

by maiolica, 3 years ago

Attachment: patch.diff added

comment:11 by dreammaster, 3 years ago

I've corrected the language for the detection. However, I'm not sure if that will make any difference - the engine has special code in multiple different places to handle the special cases of the different languages, and without knowing what the original language is, that should be the same for this new Italianized version, I won't be able to put in any special handling for it.

comment:12 by maiolica, 3 years ago

I've asked in the forum, the translation was based on the english version.
The game is now detected as italian, the old crash is gone.
I've noticed another one: in the first screen, when I open the inventory, or click the "Use" or "Give" button ScummVM crashes with this error:

Couldn't find inventory item - Message!

comment:13 by dreammaster, 3 years ago

Well, that's a bit of improvement, at least. At a guess, I'd say they translated the internal inventory item names to Italian, where they should have left them in English. If you look here:
https://github.com/scummvm/scummvm/blob/master/engines/sherlock/scalpel/scalpel.cpp#L965

You'll see that irrespective of the language, a set of named inventory items are set up. In particular, "Message" is one of the two default items in the player's inventory, and the error indicates that it can't find any item with that name.

At this point, there are two options.. someone has to either look into redeveloping the translation patch so it's compatible with ScummVM's Sherlock engine, or to fork the ScummVM and submit changes to the Sherlock engine to replace the inventory item names specifically for the Italian version. In either case, it may end up being a non-trivial undertaking, so it's not something I could commit to right now, even if I could get the diff you provided to work. Maybe you can convince the original authors of the patch to look into the matter further.

Note: See TracTickets for help on using tickets.