Opened 3 years ago

Closed 8 months ago

#10931 closed defect (fixed)

SHERLOCK: SCALPEL: Nobby Charleton won't talk to Sherlock

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

Description

ScummVM Version: 2.0.0

Bug Details: In St. Bernard’s Public House (billiards) I’ve already bribed the spectator, and he told me to speak to Nobby.

When I click on Nobby, he tell's me to wait until he's not busy. But he's stuck in that state, and both Nobby and Jock are standing still, neither one is playing.

Language: English

Version: DOS

OS: Windows 8.1 Version 6.3 Build 9600

Save Game: Attached

Attachments (2)

scalpel.000 (16.5 KB ) - added by ignaciojn 3 years ago.
scalpel.013 (15.4 KB ) - added by techfixes1 3 years ago.

Download all attachments as: .zip

Change History (18)

by ignaciojn, 3 years ago

Attachment: scalpel.000 added

comment:1 by ignaciojn, 3 years ago

Component: --Other--Engine: Sherlock

comment:2 by dreammaster, 3 years ago

Hmmm.. whatever the problem is that caused the "freezing", it's already happened, so it's kind of hard to figure out why. Do you have a savegame from just before you went to the public holiday? Maybe see if the problem keeps happening for you or not. This may be the result of some original bug manifesting from, for example, talking to one of the NPCs at the exact wrong instant.

comment:3 by ignaciojn, 3 years ago

Unfortunately, I only have the save I posted.

comment:4 by dreammaster, 3 years ago

Owner: set to dreammaster
Resolution: wontfix
Status: newclosed
Summary: Case of the Serrated Scalpel - Nobby Charleton won't talk to SherlockSHERLOCK: SCALPEL: Nobby Charleton won't talk to Sherlock

Apologies, but then I can't really do anything. I don't have any handy saves either for around that part of the story. If you want to keep playing the story, you might want to peruse the list of closed/fixed Serrated Scalpel bugs on the bugtracker, though. Some of them might have savegames attached that are close to or just after that point in the game, so at least you'll be able to keep playing

by techfixes1, 3 years ago

Attachment: scalpel.013 added

comment:5 by techfixes1, 3 years ago

Attached SCALPEL.013 which contains a Save File from just before the event(s) in question.

Both my wife and myself have just played this game and both of us got stuck at the same point - not with Nobby, but with Jock Mahoney (the character in yellow).

In her case the characters seemed to stop playing altogether. There was no movement at the Billiards table, therefore no correct moment to "Talk" to Jock Mahoney. After 2 or 3 hours it proved impossible to progress the game.

comment:6 by techfixes1, 3 years ago

Resolution: wontfix
Status: closednew

comment:7 by dreammaster, 3 years ago

I tried loading up the savegame you provided, and it worked for me. Initially Jock will just just give one of 4 "go away" messages, but after talking to the spectator, I was then able to force a conversation with him.

I'm presuming this ties into the "stop playing" problem you mention in your comment, that also prevents the conversation from working? Is there any steps I need to perform to get it to happen? Since when I tried myself, the animation was working just fine.

comment:8 by techfixes1, 3 years ago

Usually the ordering goes like this: "Talk first to the spectator, and pay him for info. Then talk to Nobby Charleton as suggested (you should try several times). Talk to the barman (particularly about the "man in yellow"), and finally to Jock Mahoney, who will tell you the whereabouts of Antonio."

A bit of googling reveals that game jamming up in ScummVM when trying to talk to Jock Mahoney is a fairly common occurrence (may be a crash, as later in the game it is possible to induce a crash with the shed door so that it is no longer openable).

Either the animation for the game of billiards stops working or plays very slowly, making the window of opportunity to talk to the man in yellow very small (I was able to finally get some headway after an hour or two of fiddling and talking to him over and over and getting rebuffed - in my wife's game it was impossible to progress the game at all). It is definitely a bug affecting the enjoyment of the game as it was originally intended.

comment:9 by dreammaster, 3 years ago

I'll try and fiddle around somewhat, and see if I can replicate the problem. Just in case it has some bearing on the problem, what system and exact version of ScummVM are you running when the problem occurred?

comment:10 by techfixes1, 3 years ago

Mine - ScummVM 2.1.0 Windows 10, ver 1909
My Wife - ScummVM 1.9.02 Windows 7 Pro

comment:11 by dmitrymex, 12 months ago

I see the same bug while playing on DosBox 0.73, so it is probably not related to ScummVM. Just like in OPs case players stop playing billiard, so it seems to be impossible to talk to Nobby. Luckily I have a save from before the problem started, and I bypassed the bug after reload.

comment:12 by eriktorbjorn, 8 months ago

I'm at this point in my playthrough, and out of two attempts I've been unable to talk to Jock after talking to the other two. Even assuming that there is a bug in the original, it would be nice if we could figure out what's happening and work around it. I'll see if I can find anything, but I'm not even sure how the scripts in the Sherlock engine work...

Edit: It's also possible I'm just getting the puzzle wrong. It's not all that clear.

Last edited 8 months ago by eriktorbjorn (previous) (diff)

comment:13 by eriktorbjorn, 8 months ago

Just some notes to help my (or anyone else's) debugging:

Each of the two billiard players are two objects:

  • Jock Mahoney is "Yell43a" (who won't talk to you) and "Dand43a" (who will talk to you).
  • Nobby Charleton is "Ruff43a" (who won't talk to you) and "Roug43a" (who will talk to you).

While they are playing, the game keeps switching their types between 4 (ACTIVE_BG_SHAPE) and 7 (HIDDEN). When the time comes for me to talk to Jock, whatever is responsible for doing that (probably related to the animation of them playing?) seems to have stopped.

Actually, it seems that anyone you talk to in the room will have their animation stopped. Leaving and re-entering the room will start the animation again. This is enough to get through the puzzle, but obviously not ideal.

The same thing happens in other rooms, but this is perhaps the only one where the state of animation makes such a noticeable difference? It does not seem to happen in the original. You can try, for instance, talking to the police at the scene of the murder. He will stop moving while you're talking, but he should resume moving once you've finished talking.

comment:14 by eriktorbjorn, 8 months ago

I'm a bit vague about the details, but I think there's a problem with the way it pushes/pulls sequences from the stack.

When a conversation is initiated, Talk::initTalk() clears the sequence stack and pushes a new sequence on it. I think this is the animation the character was doing before you started talking to him.

Then ScalpelTalk::showTalk() clears the stack and pushes a sequence again. But this time, it's probably the animation for the character standing still while you're talking to him.

If character portraits are enabled, there's a push and a pull probably related to the portrait animation.

When the conversation is done, the sequence is pulled from the stack. But it's probably the one that ScalpelTalk::showTalk() pushed, so it doesn't restart the old animation.

I have a feeling that ScalpelTalk::showTalk() shouldn't clear and push to the sequence stack. But I'm not 100% sure, and I can't look further right now.

comment:15 by eriktorbjorn, 8 months ago

An attempted fix can be found in https://github.com/eriktorbjorn/scummvm/tree/sherlock-misc-fixes

Hopefully it will pass review soon.

comment:16 by dreammaster, 8 months ago

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