Opened 5 months ago
Closed 5 months ago
#15165 closed defect (fixed)
Leisure Suit Larry 6 Freeze during Electric Shock cutscene
Reported by: | tacoadventure | Owned by: | sluicebox |
---|---|---|---|
Priority: | normal | Component: | Engine: SCI |
Version: | Keywords: | ||
Cc: | tacoadventure | Game: | Leisure Suit Larry 6 |
Description
During the cutscene the game freezes. See attached screenshot when the freeze happens and the save file that it being used to duplicate the freeze. I have tested on the latest daily build and the freeze still happens. The installed version of the game is the Steam version.
Attachments (4)
Change History (19)
by , 5 months ago
Attachment: | Screenshot 2024-06-10 134843.png added |
---|
by , 5 months ago
Attachment: | lsl6-cd.018 added |
---|
comment:1 by , 5 months ago
Component: | --Unset-- → Engine: SCI |
---|
comment:2 by , 5 months ago
comment:3 by , 5 months ago
I've checked the eXo version and it is packaged that exact same way as the Steam version. Both of these include an AUD directory with *.MAP files and a RESOURCE.AUD file. I've moved all of these files to the base game directory, and it still freezes on this scene. I suppose that it is possible that it is a broken Steam version that was duplicated for the eXo version. I've attached a list of the files in the base directory. I moved all of the files from the AUD and SFX directories to the base directory and I've removed those directories. The only remaining directory is the PATCHES directory.
by , 5 months ago
Attachment: | LSL6-DIR.txt added |
---|
comment:4 by , 5 months ago
Thanks for the details!
There is no PATCHES directory for this version of this game to my knowledge. Try removing it. Also I am very interested in (fearful of?) what files are inside that directory.
If that doesn't change things, try pressing F5 during the freeze to save a game and upload that. I should be able to pinpoint the exact spot it's stuck at.
If you know how, can you md5sum all the files in those directories? (or sha1 or whatever your favorite hashing algorithm is?) That would identify if any resource files are indeed different. But I'm pretty focused on PATCHES for now.
comment:5 by , 5 months ago
It hangs for me too, with a freshly installed GOG version. These are the files that gave me:
5b3b93130e29620927a2056ca1d31084 ./ADL.DRV d519cbd80f99f4c018678a0b73aaccd9 ./AUD/0.MAP e6c1edea1759964888541ab86e085e4e ./AUD/130.MAP f2f7d4cf894640456bd7800bfe506e39 ./AUD/140.MAP e814d928dae857fcfe50013991eec2a8 ./AUD/190.MAP 4aecc8b0d344c48e4b23efba24823efd ./AUD/200.MAP 434d8693c49f04148d9dd4b722ec202e ./AUD/205.MAP a2b17730abe920159e1482c1734f7a7e ./AUD/210.MAP af7897534de5e6024b6b7c7638b89076 ./AUD/230.MAP be12369e3684de2216d8a7a681ca27b6 ./AUD/240.MAP 9a1a1e0a0712d74cd92d2fe98c38fffa ./AUD/250.MAP a072b3accaefbc4ecd644ddcbd3d725d ./AUD/260.MAP ca3d6ec3e4893d1e56504cea88c03c3c ./AUD/270.MAP a41a7ad7cde0d627c903915673c6f2ec ./AUD/280.MAP 03a321f89795ed2fd63f794c0e7b2070 ./AUD/300.MAP 38fd797793977fb25a2075ef03b049a6 ./AUD/305.MAP 8d1cb8070644cc613db56d7b90d4eb5a ./AUD/310.MAP 213e88a30637b42d278492a8dc97c73a ./AUD/320.MAP 9b213006eefb11cb67e82c16df7f8185 ./AUD/330.MAP efd1d329d74e31d20031131942a5ace7 ./AUD/340.MAP 4c6509ed99b62e1a8cf4838cfd454152 ./AUD/350.MAP 7b46d4f311afb8befd689ccc34991174 ./AUD/360.MAP 5d4a3699d8aa44c03020d99dc2cacddd ./AUD/370.MAP 031cefba0287c944f5224beb7a64ed1d ./AUD/380.MAP 5dc946ae8b34d33fcc16adb4de17a72a ./AUD/390.MAP 7a092f04a5c2a8551a270a775bed8a1d ./AUD/400.MAP a274831e5eeeeb31a70cd66b6d347bf4 ./AUD/410.MAP 0653f6f4fd9806fc105eeb8a144cb296 ./AUD/420.MAP 763350495edfe7bd1c94122fd6ace1a7 ./AUD/430.MAP c39d4df27a0ce6b4a6d8d34de6762dca ./AUD/440.MAP 65644aca79b63bac1635627e192c8d50 ./AUD/460.MAP 91e9263bd4fc31f48fdb0839192b9990 ./AUD/500.MAP 6f4194b507a8bde4a8fb3d6d670932f4 ./AUD/505.MAP 941e810f0c5cc4a32a10da1f46cf4219 ./AUD/510.MAP 5de46fab5f8b7f49b48ffef07e53e28d ./AUD/520.MAP 417c22d4f2a953cf55a9e4476830880a ./AUD/530.MAP dbd8a3d2125c4723d08fd1ca5a2f2843 ./AUD/560.MAP 78b7f7d93993a5169c50dccd1d2e91ae ./AUD/570.MAP 6264218504cc6b2d8a05dbe5d631a6b8 ./AUD/580.MAP 79c032c062e89cff84ce76458daa659a ./AUD/590.MAP 9538062ad379d995c0980c068ebde1d1 ./AUD/600.MAP 277fd769a170e0a5d42984f40fbaae4a ./AUD/610.MAP d85dd0022c4e3a4d72909712ce3516e7 ./AUD/611.MAP 0df965db5569106a75adf3b49e9f9411 ./AUD/620.MAP 1c8fe48594deb8df8970988815f28842 ./AUD/630.MAP f0422e53a0459f140977551d8c911247 ./AUD/640.MAP 8307ebca7c355e86ba57167b64553ebe ./AUD/650.MAP d47bbbcecedaf93987378dca76c62d3c ./AUD/660.MAP 16f5269e90ce1688a3fe8fa30065fd52 ./AUD/680.MAP d26b365f744ca24c653197ea769e55de ./AUD/690.MAP abfd10e7ddd8461241b7dde5931ebdd4 ./AUD/700.MAP bbbe81f88658d76468c38646e4201eea ./AUD/710.MAP 9b1db90814a6e56e20e8888e6b6cb006 ./AUD/720.MAP d2ccfe3683474777ea8b554e9ba6986e ./AUD/740.MAP f4cbb38f6581db085b3d909d523a2322 ./AUD/800.MAP f7fd652b9efb9c0f1e30d8b430c5d53c ./AUD/810.MAP 68cd8331d9e9ac2ffbe8f1bb6574c720 ./AUD/820.MAP 212b8089fed779285d0d4624044af1e4 ./AUD/825.MAP c94148b1c18115787ceb88fe882378ee ./AUD/82.MAP 74a25a37536e7add3a186d758d6e508e ./AUD/830.MAP 80fa56f4d0c03d9bebdd6e1321172b5d ./AUD/840.MAP 2ad1b7999028d3d171bf6c1df03e2932 ./AUD/850.MAP bb0b9770298f936267d624bdf6f6c67a ./AUD/85.MAP f00a2f50fbbfa03a404c9d32fdb0f73e ./AUD/860.MAP 5930d88f624da69be246206497c65414 ./AUDARIA.DRV d7987cb38c9bdf4b1f6e3716d3498856 ./AUDBLAST.DRV bf6d4c8363982853c866cc808abd894b ./AUDDISNY.DRV 0efeb4ecc6effab9086f0c377516c5c3 ./AUDGUS.DRV 0bd68a11574c013f907c2c2f4c51a8bc ./AUDMSSYS.DRV ca101ab33ce2f343286bb5898a25fb99 ./AUDNONE.DRV ee13a6ef348b01e534d6e6b1d181cd92 ./AUDPRO16.DRV e23c633dd3d5f975b51b7e8e030a919d ./AUDPRO.DRV 977418a2e3ca3d99245ccc681696192d ./AUDPS1.DRV 217d9e460a4a9ff03aa73e3e2e1544e5 ./AUD/RESOURCE.AUD 2262e5ded211dcbd30c700ff10631d16 ./AUDTHUND.DRV 4d0b552a80a88a9c416223950fd7ff60 ./BOOTDISK.EXE 22aa153907cb69d5aac4b128555f7b62 ./GENMIDI.DRV 61190a63533d6b282eec860b8d843f5a ./GMGUS.DRV 6c28c010a05441bd392037f87ca7f0bd ./GUSDRV.COM 3e33931a9bfe41408806d392c26f57b3 ./IBMKBD.DRV eacc88538ed711cc103e3c9bd40efc86 ./IBMPS1.DRV 561b5c051b1bb010e91b41c89d6de979 ./INSTALL.EXE cd551a60a4006499af880247a1499904 ./INSTALL.HLP 7751b6f7a640cc9112133b20b0bec208 ./INSTALL.SCR c959ec0cbe3be152ac9586d95745b0d2 ./INSTALL.TXT 0bae624423368fe39b4808134b946006 ./INTERP.ERR 963fc9e3860753fce5ad00815288c5a7 ./MICROSOF.DRV e2bcbb34b6bfe586c52605258ef9a312 ./MT32.DRV be6b9872a2da486b58beb331697087f6 ./PATCHES/93.MSG 59e30f55db630b2e7a71442c45fef3ed ./PATCHES/T 184fbf00cfb5cf1f6ef43982a9045d56 ./PROAUDIO.DRV 17cd1603be97afff56b6ca6b07688a1d ./README 3434f03c74ae136ce8cb6b8f2ae87b78 ./RESOURCE.000 f8ca8b5decb9c4f861a0cf6202053748 ./RESOURCE.CFG b30afee9ae66208201008c5d4b315099 ./RESOURCE.LL6 c18d3dd21b5637344f407604bc06d006 ./RESOURCE.MAP cbbe51830655cd8abe8dc2cfdb3cb025 ./RESOURCE.MTB ff96016b21e92df672abe3ca57901fe2 ./RESOURCE.NOL da3971d2f5e3265435dc8bc81333e6f0 ./RESOURCE.PRO 1ecb03e9ef121104b9a5cb6a44a5e061 ./SBPRO.DRV 8d284d70d11327ec6f6acee8bd4ca0fb ./SFX/RESOURCE.SFX 0073868ae0cdc06835455f2142b28603 ./SIERRA.ERR 3e9e1653ff964048b70be8f4b86663e4 ./SIERRA.EXE aa444eeb77bc162d0ee52379df408358 ./STD.DRV 275dbe1cec69850722da197284b57f86 ./VERSION ef68c7e2d344b296f2fb24d7a3ce2852 ./VGA320.DRV
comment:6 by , 5 months ago
I also have a "SierraOriginals" CD version, but it's a bit confusing because it apparently contains several versions of the game and I'm not sure which files to copy from it.
Working on the theory that I need the files from the "LORES", "AUD" and "SFX" directories... that one freezes too.
To confuse things even further, that doesn't quite match the version I already had installed for ScummVM, which also freezes. (I think the only game-related files that old one has in addition to what I just created from that CD are 740.MSG, 860.HEP, 860.SCR and 93.MSG. I don't have the time right now to dig out all my LSL collection CDs to see if it matches any of those.)
by , 5 months ago
Attachment: | lsl6-cd.021 added |
---|
comment:7 by , 5 months ago
I've removed the PATCHES directory, and the game is still freezing. I've attached a save game that is saved while the game is frozen (lsl6-cd.021).
comment:8 by , 5 months ago
Except for two .BAT files, the files I got from the SierraOriginals CD were identical to the ones I got from the GOG version.
comment:9 by , 5 months ago
0.MAP - d519cbd80f99f4c018678a0b73aaccd9 130.MAP - e6c1edea1759964888541ab86e085e4e 140.MAP - f2f7d4cf894640456bd7800bfe506e39 190.MAP - e814d928dae857fcfe50013991eec2a8 200.MAP - 4aecc8b0d344c48e4b23efba24823efd 205.MAP - 434d8693c49f04148d9dd4b722ec202e 210.MAP - a2b17730abe920159e1482c1734f7a7e 230.MAP - af7897534de5e6024b6b7c7638b89076 240.MAP - be12369e3684de2216d8a7a681ca27b6 250.MAP - 9a1a1e0a0712d74cd92d2fe98c38fffa 260.MAP - a072b3accaefbc4ecd644ddcbd3d725d 270.MAP - ca3d6ec3e4893d1e56504cea88c03c3c 280.MAP - a41a7ad7cde0d627c903915673c6f2ec 300.MAP - 03a321f89795ed2fd63f794c0e7b2070 305.MAP - 38fd797793977fb25a2075ef03b049a6 310.MAP - 8d1cb8070644cc613db56d7b90d4eb5a 320.MAP - 213e88a30637b42d278492a8dc97c73a 330.MAP - 9b213006eefb11cb67e82c16df7f8185 340.MAP - efd1d329d74e31d20031131942a5ace7 350.MAP - 4c6509ed99b62e1a8cf4838cfd454152 360.MAP - 7b46d4f311afb8befd689ccc34991174 370.MAP - 5d4a3699d8aa44c03020d99dc2cacddd 380.MAP - 031cefba0287c944f5224beb7a64ed1d 390.MAP - 5dc946ae8b34d33fcc16adb4de17a72a 400.MAP - 7a092f04a5c2a8551a270a775bed8a1d 410.MAP - a274831e5eeeeb31a70cd66b6d347bf4 420.MAP - 0653f6f4fd9806fc105eeb8a144cb296 430.MAP - 763350495edfe7bd1c94122fd6ace1a7 440.MAP - c39d4df27a0ce6b4a6d8d34de6762dca 460.MAP - 65644aca79b63bac1635627e192c8d50 500.MAP - 91e9263bd4fc31f48fdb0839192b9990 505.MAP - 6f4194b507a8bde4a8fb3d6d670932f4 510.MAP - 941e810f0c5cc4a32a10da1f46cf4219 520.MAP - 5de46fab5f8b7f49b48ffef07e53e28d 530.MAP - 417c22d4f2a953cf55a9e4476830880a 560.MAP - dbd8a3d2125c4723d08fd1ca5a2f2843 570.MAP - 78b7f7d93993a5169c50dccd1d2e91ae 580.MAP - 6264218504cc6b2d8a05dbe5d631a6b8 590.MAP - 79c032c062e89cff84ce76458daa659a 600.MAP - 9538062ad379d995c0980c068ebde1d1 610.MAP - 277fd769a170e0a5d42984f40fbaae4a 611.MAP - d85dd0022c4e3a4d72909712ce3516e7 620.MAP - 0df965db5569106a75adf3b49e9f9411 630.MAP - 1c8fe48594deb8df8970988815f28842 640.MAP - f0422e53a0459f140977551d8c911247 650.MAP - 8307ebca7c355e86ba57167b64553ebe 660.MAP - d47bbbcecedaf93987378dca76c62d3c 680.MAP - 16f5269e90ce1688a3fe8fa30065fd52 690.MAP - d26b365f744ca24c653197ea769e55de 700.MAP - abfd10e7ddd8461241b7dde5931ebdd4 710.MAP - bbbe81f88658d76468c38646e4201eea 720.MAP - 9b1db90814a6e56e20e8888e6b6cb006 740.MAP - d2ccfe3683474777ea8b554e9ba6986e 800.MAP - f4cbb38f6581db085b3d909d523a2322 810.MAP - f7fd652b9efb9c0f1e30d8b430c5d53c 82.MAP - c94148b1c18115787ceb88fe882378ee 820.MAP - 68cd8331d9e9ac2ffbe8f1bb6574c720 825.MAP - 212b8089fed779285d0d4624044af1e4 830.MAP - 74a25a37536e7add3a186d758d6e508e 840.MAP - 80fa56f4d0c03d9bebdd6e1321172b5d 85.MAP - bb0b9770298f936267d624bdf6f6c67a 850.MAP - 2ad1b7999028d3d171bf6c1df03e2932 860.MAP - f00a2f50fbbfa03a404c9d32fdb0f73e ADL.DRV - 5b3b93130e29620927a2056ca1d31084 AUDARIA.DRV - 5930d88f624da69be246206497c65414 AUDBLAST.DRV - d7987cb38c9bdf4b1f6e3716d3498856 AUDDISNY.DRV - bf6d4c8363982853c866cc808abd894b AUDGUS.DRV - 0efeb4ecc6effab9086f0c377516c5c3 AUDMSSYS.DRV - 0bd68a11574c013f907c2c2f4c51a8bc AUDNONE.DRV - ca101ab33ce2f343286bb5898a25fb99 AUDPRO.DRV - e23c633dd3d5f975b51b7e8e030a919d AUDPRO16.DRV - ee13a6ef348b01e534d6e6b1d181cd92 AUDPS1.DRV - 977418a2e3ca3d99245ccc681696192d AUDTHUND.DRV - 2262e5ded211dcbd30c700ff10631d16 BOOTDISK.EXE - 4d0b552a80a88a9c416223950fd7ff60 GENMIDI.DRV - 22aa153907cb69d5aac4b128555f7b62 GMGUS.DRV - 61190a63533d6b282eec860b8d843f5a GUSDRV.COM - 6c28c010a05441bd392037f87ca7f0bd IBMKBD.DRV - 3e33931a9bfe41408806d392c26f57b3 IBMPS1.DRV - eacc88538ed711cc103e3c9bd40efc86 INSTALL.EXE - 561b5c051b1bb010e91b41c89d6de979 INSTALL.HLP - cd551a60a4006499af880247a1499904 INSTALL.SCR - 7751b6f7a640cc9112133b20b0bec208 INSTALL.TXT - c959ec0cbe3be152ac9586d95745b0d2 INTERP.ERR - 0bae624423368fe39b4808134b946006 LSL6CHK.BAT - 8628110a188ce3fd27bf44dc016414eb MICROSOF.DRV - 963fc9e3860753fce5ad00815288c5a7 MT32.DRV - e2bcbb34b6bfe586c52605258ef9a312 PROAUDIO.DRV - 184fbf00cfb5cf1f6ef43982a9045d56 README - 17cd1603be97afff56b6ca6b07688a1d README.BAT - a8b66d7bb020fb9921d83288161981f9 RESOURCE.000 - 3434f03c74ae136ce8cb6b8f2ae87b78 RESOURCE.AUD - 217d9e460a4a9ff03aa73e3e2e1544e5 RESOURCE.CFG - f8ca8b5decb9c4f861a0cf6202053748 RESOURCE.LL6 - b30afee9ae66208201008c5d4b315099 RESOURCE.MAP - c18d3dd21b5637344f407604bc06d006 RESOURCE.MTB - cbbe51830655cd8abe8dc2cfdb3cb025 RESOURCE.NOL - ff96016b21e92df672abe3ca57901fe2 RESOURCE.PRO - da3971d2f5e3265435dc8bc81333e6f0 RESOURCE.SFX - 8d284d70d11327ec6f6acee8bd4ca0fb SBPRO.DRV - 1ecb03e9ef121104b9a5cb6a44a5e061 SIERRA.ERR - 0073868ae0cdc06835455f2142b28603 SIERRA.EXE - 3e9e1653ff964048b70be8f4b86663e4 STD.DRV - aa444eeb77bc162d0ee52379df408358 VERSION - 275dbe1cec69850722da197284b57f86 VGA320.DRV - ef68c7e2d344b296f2fb24d7a3ce2852
comment:10 by , 5 months ago
I think I see where I got the additional files from my old version. The CD has an LSL6PAT.EXE that contains
- 740.MSG
- 860.HEP
- 860.SCR
- 93.MSG
- LSL6_SFX.EXE
- READ.ME
- README.BAT
According to the READ.ME:
"This patch will correct two "Oops" errors that occur while playing Leisure Suit Larry VI. One occurs on the beach after lighting the "Lamp of Wisdom". The other will occur on the beach when trying to light the match".
So I guess I may have used this CD, or something pretty similar, to put together my old installed version. Though this probably has no bearing on the bug report at hand.
comment:11 by , 5 months ago
My PATCHES directory, which has since been deleted contained the file 93.MSG and a file T, that contained the contents "directory can't be empty"
This appears to be the same PATCHES directory that is contained in the GOG version.
comment:12 by , 5 months ago
Thank you both! That's a lot of good info, and now that we've got eriktorbjorn reproducing this too I'm certain we'll get it figured out. He is unstoppable! I will take a look at all of this, starting with a slow audit of what exactly is on the various CDs.
This is a very easy game to get confused about because there are so many versions: SCI16 floppy, SCI16 CD, SCI32 CD, SCI32 Mac CD, SCI16 Mac floppy, *localized versions*... and then there's all the ways they've been packaged on different CDs over the years. Some CDs have multiple languages and/or SCI16 *and* SCI32 pointed at shared resource directories. In one CD, Sierra messed up the location of PATCHES, causing code that never should have shipped make the game impossible to complete. All of this is very nuanced, and the internet is loaded with 30 years of posts that don't take into account any of that. Sierra's patch notes confuse things further by misrepresenting the problems they fix or simply making things up; they are unfortunately untrustworthy. My mental model for LSL6 is to tune out everything until I see it for myself, which just means it takes some patience.
I hope this isn't related, but we've had a freeze in this scene before: #6358. That was 11 years ago, and it was a bug in our sound code that affected multiple versions. I mention it for completeness, but since I'm not having this problem, I don't think it's going to be that.
comment:13 by , 5 months ago
I can reproduce this now, I was missing RESOURCE.SFX, preventing the conflicting digital sound effect from playing.
This is a sound bug, and I'm scared. The script plays the digital sound of the alligator clips at the same time it plays Larry saying "Ow!" and it waits on both of those to complete at once. But in in SCI16, you can only play one digital sound at a time, so one interrupts the other, preventing them from both completing, and freezing the script.
ScummVM used to allow multiple digital sounds at once, even though that wasn't original behavior. It caused many sound bugs, because games rely on that behavior. I fixed that a few years ago by implementing the one-sound-effect-at-a-time behavior. I bet that's when this stopped working in ScummVM. How did the original work? Maybe its interpreter was different? Maybe it got lucky with timing? In the SCI32 version, the rewrote these specific lines of script to not do this problematic thing, so this may have been a real problem for Sierra too.
comment:15 by , 5 months ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
The freeze is fixed. It was due to engine inaccuracies I noticed two years ago when investigating a more difficult audio bug in Dagger of Amon Ra; it was too difficult for me to complete. I found my notes, implemented some of my findings, and now the freeze is fixed and the Dagger scene is slightly better.
The scene isn't perfectly accurate yet: in the original you hear *clip* "Ow!" *clip* and in ScummVM you will only here "Ow!" *clip*. That's because the original only worked by accident: it plays the first *clip* sound and then on the next line of script, plays "Ow!" which stops the previous sound and plays the new one, because SCI16 can only play one digital audio at a time. And yet, it appears to work in the original. That's because, and I think this is a new finding, when the SCI16 audio driver interrupts one sound with another, a very short amount of the first sound still ends up playing. I replaced the *clip* sounds with much longer sounds to verify this. The *clip* sound is so short that it manages to completely play, and so this scripting mistake went unnoticed until the SCI32 port when their luck ran out and they rewrote this script to be normal.
I don't know if or when we will ever figure out and implement this obscure interruption behavior. With each of these changes though, we get closer to original accuracy.
There's another inaccuracy in this scene, but it happens to be beneficial: when Chardonnay enters the room, the original would cut off her speech when the door-close sound played. For some reason we are not interrupting that and both sounds play; I think that's another inaccuracy I noted two years ago. But for now, that's good, because you can hear her speech which you couldn't in the original.
Thanks again for reporting this! But yeesh why couldn't it have been another scene... =O
For reference, here's the original behavior: https://youtu.be/VINuOmJH1_I?t=9813
And here's the script that plays a digital sample and speech at the same time: https://github.com/sluicebox/sci-scripts/blob/65c4100d1ba073e89290554f51acbe78777e3c95/lsl6-cd-dos-1.000.000/src/rm380.sc#L535
Hello, thank you for reporting this. This scene works for me with your save game, so I suspect that the Steam release has scattered the game files in unexpected places where ScummVM can't find them.
This scene's script waits on digital sound effects to finish playing. If they were missing then I would expect this scene to freeze.
The game directory should include all the files from the original CD, so that should include an AUD subdirectory with lots of *.MAP files and RESOURCE.AUD. I don't have the Steam release to compare, so you'll have to find them and move them over to the game directory. You could also create a new directory and just copy all the files over if you don't want to mess up your Steam setup.
I'll keep this ticket open, but I'm confident that this is the problem, because there is only one version of the lo-res CD version.