Skip to content

Sherlock Scalpel 3DO talkie based on zafos' work#7211

Closed
bluddy wants to merge 22 commits intoscummvm:masterfrom
bluddy:scalpel_talkie
Closed

Sherlock Scalpel 3DO talkie based on zafos' work#7211
bluddy wants to merge 22 commits intoscummvm:masterfrom
bluddy:scalpel_talkie

Conversation

@bluddy
Copy link
Member

@bluddy bluddy commented Feb 10, 2026

Continuing the work by @zafos in #7101, I've addressed the comments:

  • Spun out the offset database to a .dat file (textual for easy editing if needed).
  • Made use of ConfMan's talkspeed setting.
  • Made sure to call updateScreen
  • Created a debug channel for most talkie stuff.
  • Used SearchMan to find the resources.

zafos and others added 21 commits February 10, 2026 14:26
The closing namespace comment incorrectly said Sherlock instead of Video.
Mark all audio tracks as finished when the stream reaches EOF.
Without this fix, endOfVideo() would never return true because audio
tracks would not report endOfTrack() == true. This could cause games
to hang waiting for video playback to complete.
Add isAudioTrackFinished() to check if all queued audio has
been played. This enables callers to determine when audio playback
is complete so we can sync properly.
Add configuration and runtime support for playing 3DO voice acting
in the PC version of Serrated Scalpel. Changes:
- TalkieMode enum (TALKIE_NONE, TALKIE_AUDIO_ONLY)
- 3DO asset detection using random files from duration table
- Config file setting: talkie_mode
Precomputed audio durations for all 1722 3DO conversation clips.
Used to synchronise text display with voice acting playback.
Add talkie mode that plays 3DO voice acting while
displaying static portraits.
- Non-blocking audio playback during conversations
- Text-to-audio synchronisation using a duration lookup table
- Hybrid skip behavior for multi-page dialogues
- Audio cleanup on scene transitions
Remove hardcoded "Movies" path for 3DO stream files and add Movies
to the default search path.
This change updates the default search path for 3DO stream files from
'HolmesData' to 'HolmesData/Movies'. Documentation has been updated
to include the new talkie mode settings and path descriptions.
Restore base class Talk::waitForMore() for PC mode without talkie
enabled. The custom waitLoop() uses wall-clock timing designed for
audio synchronisation, which caused text to disappear too quickly
when talkie mode is disabled.
Add talkie_mode checkbox to game settings for PC Serrated Scalpel.
Allows enabling/disabling 3DO speech from the ScummVM GUI instead
of requiring manual config file edits.

- Add GAMEOPTION_TALKIE_MODE to detection.h
- Add the relevant entries in detection_tables.h
  and metaengine.cpp
- Change talkie_mode from int to bool
This allows for easy editing rather than using a complex tool.
@bluddy bluddy changed the title Scalpel 3DO talkie based on zafos' work Sherlock Scalpel 3DO talkie based on zafos' work Feb 10, 2026
@bluddy bluddy requested a review from sev- February 10, 2026 13:49
@i30817
Copy link
Contributor

i30817 commented Feb 10, 2026

I'm not a dev, and I'm not testing the pr, but I can suggest something. Can you make the option default to on if the scummvm scanner finds the default directory of the movies when scanning the games so the user that has the extra data doesnt have to remember to turn it off assuming that a user will rescan the same data many times over the years and may forget about the files ?

Assuming that doesn't already happen of course.

Edit: I see that it does, never mind then.

"Add GAMEOPTION_TALKIE_MODE to detection.h

  • Add the relevant entries in detection_tables.h"

@zafos
Copy link
Contributor

zafos commented Feb 10, 2026

Apologies for the radio silence; I haven’t had time to look into this. Thank you @sev- for the review and @bluddy for continuing the work. I’m following along, but there’s a bug in my implementation I’m investigating: in some cases, the file selection for speech files seems to fail (for example, the morgue scene). I need some playtesting to understand what’s happening and to fix it properly. I have a temporary fix in place, but I’m not yet confident it doesn’t break other parts of the game. Bear with me.

@bluddy
Copy link
Member Author

bluddy commented Feb 11, 2026

Apologies for the radio silence; I haven’t had time to look into this. Thank you @sev- for the review and @bluddy for continuing the work. I’m following along, but there’s a bug in my implementation I’m investigating: in some cases, the file selection for speech files seems to fail (for example, the morgue scene). I need some playtesting to understand what’s happening and to fix it properly. I have a temporary fix in place, but I’m not yet confident it doesn’t break other parts of the game. Bear with me.

First of all, sorry for co-opting your PR - I haven't played the game yet and I really like what you did. I wish it was easier to cooperate on an PR like this one -- happy to give you permissions to my fork or to work on your fork or whatever you want.

Secondly, do you have a save game around the area of the failure? I can also check it out.

Not sure if this fixes anything, but there could be drift of the indices
potentially.
@sev-
Copy link
Member

sev- commented Feb 14, 2026

The last commit does not conform to our Commit Guidelines, please fix.

@sev-
Copy link
Member

sev- commented Mar 1, 2026

Closing this after consideration of the availability of these versions. We essentially invite people to pirate the 3DO version, mix the files in order to get the "best" experience. This could be accepted only if we have blessing from the current IP owners, or when at least both versions of the game are on sale on some modern platforms like Steam or GOG.

@sev- sev- closed this Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants