#6349 closed defect (fixed)
LSL1VGA: No Music Distortion While Drunk
Reported by: | SF/eoakford | Owned by: | bluegr |
---|---|---|---|
Priority: | normal | Component: | Engine: SCI |
Version: | 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)
Change History (8)
by , 11 years ago
Attachment: | lsl1sci_drunklarry.tar.gz added |
---|
comment:1 by , 11 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 , 11 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 , 11 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 , 11 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 , 11 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 , 11 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 , 11 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Larry is drunk