Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#6349 closed defect (fixed)

LSL1VGA: No Music Distortion While Drunk

Reported by: SF/eoakford Owned by: bluegr
Priority: normal Component: Engine: SCI
Keywords: Cc:
Game: Leisure Suit Larry 1

Description

If you buy at least two drinks at Lefty's, the music is supposed to become all distorted while Larry is walking around drunk, then return to normal when he sobers up. This correctly happens in the original interpreter, but not in ScummVM.

ScummVM 1.7.0git521-g8dace22 Language: English Game version: 2.1 (from the 2006 LSL collection) Platform: Linux (Debian x64)

Ticket imported from: #3614447. Ticket imported from: bugs/6349.

Attachments (1)

lsl1sci_drunklarry.tar.gz (43.0 KB ) - added by SF/eoakford 7 years ago.
Larry is drunk

Download all attachments as: .zip

Change History (8)

by SF/eoakford, 7 years ago

Attachment: lsl1sci_drunklarry.tar.gz added

Larry is drunk

comment:1 by digitall, 7 years ago

Confirmed... Compared between ScummVM SCI and the original interpreter running under DOSBox and the music distorts in the original, but not ScummVM.

This is fairly quick to replicate as it only requires you to answer the age/copy protection questions, enter the bar, sit down, drink some beers by talking to Lefty and then stand up to trigger...

eoakford: Thank you for attaching original interpreter savegames to aid replication. Please be patient as it may take a little time for a SCI engine developer to investigate and attempt a fix for this.

comment:2 by bluegr, 7 years ago

LSL1 is sending pitch bend events for that scene via kDoSoundSendMidi(). It's using the currently unimplemented 4-parameter version, which is basically the same as the 5-parameter version, without the last parameter. However, that kernel function is slightly different in LSL1VGA than in newer versions, so it'll need further work

comment:3 by digitall, 7 years ago

IMHO This is the code located at: https://github.com/scummvm/scummvm/blob/master/engines/sci/sound/soundcmd.cpp#L532

Maybe ask m_kiewitz if he is still around?

comment:4 by wjp, 7 years ago

From what I can tell it's the _command_ parameter that's missing in the 4-parameter version; not the last one.

comment:5 by bluegr, 7 years ago

BTW, for reference, this is what's supposed to happen: http://www.youtube.com/watch?v=Ns7yh-JS-yI#t=5m8s

comment:6 by bluegr, 7 years ago

This was caused by missing functionality (kDoSoundSendMidi). Implemented in commit 125b146b. Thanks to wjp for his help with disassembly.

Closing

comment:7 by bluegr, 7 years ago

Owner: set to bluegr
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.