Opened 4 years ago

Closed 3 years ago

#12548 closed defect (fixed)

PRIVATE: Missing Voiceover

Reported by: TrivialBalderdash Owned by: neuromancer
Priority: normal Component: Engine: Private
Version: Keywords:
Cc: TrivialBalderdash Game: Private Eye

Description

When visiting Dr. Lagardie's office, the voiceover dialogue before entering is skipped and the scene immediately cuts to the conversation with the doctor. The voiceover should happen when the exterior scene of the house is still visible after the car pulls up. This happens on both visits.

A save file is attached. Leave Marlowe's office and go to Dr. Lagardie's office (twice) to replicate the issue. This is using the daily build from May 8 running on MacOS (Intel x64). I'm comparing this to running the game on original hardware (486 DX2/66 with Windows 3.11).

Attachments (6)

private-eye-win-us.003 (4.7 KB ) - added by TrivialBalderdash 4 years ago.
DrLagardie.png (1.1 MB ) - added by TrivialBalderdash 4 years ago.
VoiceOver2.png (1020.0 KB ) - added by TrivialBalderdash 4 years ago.
VoiceOver3.png (1.4 MB ) - added by TrivialBalderdash 4 years ago.
VoiceOver4.png (1.1 MB ) - added by TrivialBalderdash 4 years ago.
VoiceOver1.png (1.4 MB ) - added by TrivialBalderdash 4 years ago.

Change History (16)

by TrivialBalderdash, 4 years ago

Attachment: private-eye-win-us.003 added

comment:1 by neuromancer, 4 years ago

Interesting!, there is a few videos/sounds hardcoded in the executable? What is the missing voiceover saying?

Version 0, edited 4 years ago by neuromancer (next)

comment:2 by TrivialBalderdash, 4 years ago

When visiting the office for the first time, if the doctor is in, this audio will play on original hardware: /GLOBAL/TRANSITI/AUDIO/SDLC91.WAV (but not heard in ScummVM).
"The good doctor was in. I was questioning him about the case, but it wasn't going well."

After the conversation is over, this audio is heard (correctly): /GLOBAL/TRANSITI/AUDIO/SDLC92.WAV

The second time visiting, again if the doctor is in, usually triggers: /GLOBAL/TRANSITI/AUDIO/SDLC93.WAV (not heard in ScummVM)
"The doctor allowed me in again. This conversation wasn't much better than the last."

After the second conversation is over, this audio is heard (correctly):
/GLOBAL/TRANSITI/AUDIO/SDLC94.WAV

There's a 3rd set of dialogue, SDLC95&96, but I haven't played through enough of the game yet to see if these get used.

I assume there's some randomness built in, since the same sequence of events, including reloading a save file just before visiting the doctor, doesn't always trigger a conversation with the doctor. In some cases, there is no one home and you can search his office. In that case, one of several files should play, but these are not heard in ScummVM:
/GLOBAL/AUDIO/SSSC05.WAV
/GLOBAL/AUDIO/SSSC50.WAV

(I'm assuming there's more options, since the /GLOBAL/AUDIO/ folder has about 5 options for the common dialogue - taking evidence, leaving evidence, breaking & entering.)

comment:3 by neuromancer, 4 years ago

When visiting the office for the first time, if the doctor is in, this audio will play on original hardware: /GLOBAL/TRANSITI/AUDIO/SDLC91.WAV (but not heard in ScummVM).

"The good doctor was in. I was questioning him about the case, but it wasn't going well."

Is there something you see on screen during the voiceover. I suspect the SyncSound function is not correctly implemented.

by TrivialBalderdash, 4 years ago

Attachment: DrLagardie.png added

comment:4 by TrivialBalderdash, 4 years ago

I've attached a picture of what's on the screen when the voiceover should be playing.
Expected: Once the animation finishes, the screen shows the still image in the attachment and the voiceover plays. This might be showing/pausing the last frame of the animation for the voiceover.
Actual: As soon as the animation finishes, it cuts to the conversation in the office.

I checked the debugger for any message (I'm a novice with this).
When visiting the first time:
Opening hashed: global/transiti/animatio/driving/dl_trans.smk
Opening hashed: dl/search_s/dlframe.bmp
Opening hashed: global/transiti/audio/sdlc91.wav
Opening hashed: dl/animatio/sdlc07xs.smk
Opening hashed: global/transiti/audio/sdlc92.wav

Second visit:
Opening hashed: global/transiti/animatio/driving/gl_trans.smk
Opening hashed: dl/search_s/dlframe.bmp
Opening hashed: global/transiti/audio/sdlc93.wav
Opening hashed: dl/animatio/sdlc09xs.smk
Opening hashed: global/transiti/audio/sdlc94.wav

When visiting when the doctor isn't around:
Opening hashed: global/transiti/animatio/driving/gl_trans.smk
Opening hashed: global/audio/sssc05.wav
Opening hashed: dl/audio/dlss.wav
Opening hashed: dl/search_s/dlview2.bmp
Opening hashed: dl/search_s/dlmask1.bmp
Opening hashed: dl/search_s/dlmask2.bmp

Let me know if there's something else you want me to look for. Thanks for looking into this!

Last edited 4 years ago by TrivialBalderdash (previous) (diff)

comment:5 by neuromancer, 4 years ago

Expected: Once the animation finishes, the screen shows the still image in the attachment and the voiceover plays. This might be showing/pausing the last frame of the animation for the voiceover.

This is exactly what I need. I will try to fix it as soon as I have some free time (which could happen in a few weeks, I'm afraid).

Btw, if you are wondering how the game executes this scene, this is the associated code:

setting kDLGetDrugged
{

if (Random(50%))

goto(kDLSearchScreen2);

else

{

if (!kAlternateGame)
{

if (kInventoryBlackmailPhoto)
{

if (!kSDLC07Run) goto(kDLPlayC07PRE);
else if (!kSDLC09Run) goto(kDLPlayC09PRE);
else if (!kSDLC10Run) goto(kDLPlayC10PRE);
else goto(kDLSearchScreen4);

}
else
{

if (!kSDLC07Run) goto(kDLPlayC07PRE);
else if (!kSDLC09Run) goto(kDLPlayC09PRE);
else goto(kDLSearchScreen4);

}

}

...
setting kDLPlayC07PRE
{

Bitmap("dl\search_s\dlframe.bmp");
SyncSound("global\transiti\audio\sdlc91.wav", kDLPlayC07);

}

There are many untested parts of this game, which is far more complex that I initialized expected (some of them, could be even unreachable). Please let us know if you find more issues.

Thanks!

comment:6 by neuromancer, 4 years ago

Please try the latest git revision. I fixed the SyncSound implementation to allow the sound to play. There is an extra second after the sound played to avoid changing the scene too quickly. Can you please tell me if that matches the original implementation?

Thanks!

comment:7 by TrivialBalderdash, 4 years ago

The voice over plays with the latest changes. When testing, I noticed another location of a missing voice over that now plays. ("Wait, that's new..." when I was replaying). It was when returning to Marlowe's office after visiting Idaho Street and Cal Western.

The one second delay wasn't noticeable, even when I knew what to listen for.

There was a difference between the 486 and ScummVM, and it has to do with which of the driving scenes are chosen. I didn't realize this at first, but the voice over is always on the same scene, regardless of the animation is used. I initially didn't test for all of these combinations until you sent me the sample of code previously.

I captured some gameplay so I could study this frame by frame. Hopefully the screenshots show this better than my explanation below.

Returning to Marlowe’s Office, 1 of 2 animations will play. On original hardware, either of animations will play, then freeze on the exterior scene for the voiceover.

On the latest build of ScummVM, either of the animations will play, then freeze on the last frame of that animation for the audio, then show the of the original freeze frame before moving to the next animation.

If the exterior driving animation is used, everything looks like it does on original hardware.
If the shot of Marlow driving is used, the voice over is on a different scene, then you see a “blip” of the other exterior driving scene before the next animation begins.

This was true for Marlowe's office and Dr. Lagardie's office. Screenshots are attached showing both scenarios.

I recorded at 30fps, and saw 2 frames of the other scene, so the blip was about 1/15 sec.

The original voiceover issue is fixed (Thanks!!). I'm not sure what you want to do with this other observation. I had more blips and audio breaks on my 486 waiting for the 2x CD drive to load the data, so ScummVM is definitely the better gameplay experience.

by TrivialBalderdash, 4 years ago

Attachment: VoiceOver2.png added

by TrivialBalderdash, 4 years ago

Attachment: VoiceOver3.png added

by TrivialBalderdash, 4 years ago

Attachment: VoiceOver4.png added

by TrivialBalderdash, 4 years ago

Attachment: VoiceOver1.png added

comment:8 by neuromancer, 3 years ago

Btw, is there something else to fix here?

comment:9 by TrivialBalderdash, 3 years ago

This issue is fixed. Thank you!

comment:10 by neuromancer, 3 years ago

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