Opened 22 months ago

Last modified 22 months ago

#10388 new defect

SCI: Rama: (French version): assertion failure playing video at the iceport

Reported by: voyageur Owned by:
Priority: normal Component: Engine: SCI
Keywords: Cc:
Game: RAMA

Description

Arriving at the iceport (just before leaving for New York), the video with doctor Brown always crashes when reaching the "they ordered us to evacuate immediately":

User picked target 'rama-fr' (gameid 'sci')...
  Looking for a plugin supporting this gameid... SCI [SCI0, SCI01, SCI10, SCI11, SCI32]
  Starting 'Sierra SCI Game'
scummvm: video/coktel_decoder.cpp:359: uint32 Video::CoktelDecoder::deLZ77(byte*, const byte*, uint32, uint32): Assertion `srcSize >= 1' failed.
zsh: abort      scummvm

100% reproducible, tested with 2.0 and current git (482c0757475bb096c2090018a1dc10df01362498)
Game is Rama French version (1.000.000 from VERSION file)
Compiled on Gentoo Linux (x86_64)

Skipping the video with ESC before crash works, but that one has some exposition value.

Attachments (2)

rama-fr.001 (21.2 KB ) - added by voyageur 22 months ago.
Save just before meeting the doctor
md5sum_bgk.txt (50.9 KB ) - added by bgK 22 months ago.

Download all attachments as: .zip

Change History (7)

by voyageur, 22 months ago

Attachment: rama-fr.001 added

Save just before meeting the doctor

comment:1 by dafioram, 22 months ago

Thanks for your report!

I am sorry your gameplay was cut short. This game is a real gem.

Would you mind providing a full backtrace for this crash? If you don't know how to do this I do it by using gdb with the following steps:

  1. gdb ./scummvm
  2. run

Then play scummvm and reproduce the bug, when it crashes simply type "bt" within the gdb session to get a line by line back trace then post it here. If you use tripple curly backets to enclose the code it will look nicer in this ticket.

Thanks.

In the mean time if you have the english version I can give you a save at the same part, or maybe there is an online website that has a french save at the start of new york.

comment:2 by dafioram, 22 months ago

Component: --Unset--Engine: SCI
Summary: Rama (French version): assertion failure playing video at the iceportSCI: Rama: (French version): assertion failure playing video at the iceport

Okay you can skip the crash I missed that the first time. Thats good that its not progress blocking.

comment:3 by bgK, 22 months ago

I've been able to watch that video in my French version of Rama using your save. Would you mind checking the files were not corrupted while copying from your CDs? I've attached a md5sum listing of the files I have. Maybe we can spot differences with those your have.

by bgK, 22 months ago

Attachment: md5sum_bgk.txt added

comment:4 by voyageur, 22 months ago

Thanks bgK, looks like a corrupted file :(

I miss some patches files, but here I guess vmd/37011.vmd is the culprit:

--- md5sum_bgk.txt	2017-12-31 10:35:30.538198760 +0100
+++ md5sum_voyageur.txt	2017-12-31 10:20:21.853408760 +0100
@@ -81,7 +81,7 @@
 7d6a63e7eeb7d80fee33ef80016b5493  ./vmd/38421.vmd
 b49d2355eabc589980cca0b9ced285e7  ./vmd/6206.vmd
 190fe1e60abccda5afe81888daec1bd3  ./vmd/33011.vmd
-3134c47ab308ed8cd6085031d43e3915  ./vmd/37011.vmd
+84dc657dfd4903e4d6fd40365f290656  ./vmd/37011.vmd
 99c9adce3a1926f72685eb0b7c4962ad  ./vmd/63142.vmd
 f3a92cd0674b6a2c0229bc14464d8192  ./vmd/38171.vmd
 868011d37b9729ec3d2edda94c1783de  ./vmd/63012.vmd
@@ -797,24 +797,6 @@
 0c59300199b0407f9928e7f3e90fe32d  ./audio/a05w0940.001
 a5f174202fc35577d71a8c0b5c66cb68  ./audio/a05y0l40.001
 69dfecda2d065dc30cd7930a85c09567  ./audio/a05r0240.001
-e028d1eb3bc1c54a6a2a91bff21be0ba  ./patches/211.msg
-e43904b5a0766aa7015a709baa7d5c7d  ./patches/20805.v56
-fa45dd1e976a8bf08579e62b53eb3d73  ./patches/8015.v56
-9e28bd1bb4e6b6687a9f5c6d76214d10  ./patches/202.shm
-52dbfdb10d85308c30879f974ca71f73  ./patches/203.shm
-a671223334e98085cb91a98d69c545b2  ./patches/40007.p56
-0e287b6731d51194373b3f79a7f266c0  ./patches/90.msg
-29ebfbe36bb9388e48276f696dd3cda1  ./patches/2434.p56
-6dcf3a9482bbc0e8e52f40cebf3d794a  ./patches/209.v56
-0d9c2d2bdb530666542bda5f9df43247  ./patches/20959.v56
-5aa0800cc9494d592ad742acbb3408f8  ./patches/210.msg
-967d7c299f691810324043ea060ca653  ./patches/7625.p56
-ecc261950762bd9d5b984dfb188c26bd  ./patches/0.msg
-3f4f44eb33c3607d70ec5c3e438d1d2b  ./patches/1093.p56
-5271471ba2656a3f6b5221b104b3f6b2  ./patches/203.msg
-dcc7c61ce1478efca19a59437dee1de4  ./patches/202.msg
-b27efed37a2d81fbdf04b6c21cc1483b  ./patches/1193.p56
-13fa58ac73ac48111263b142689053db  ./patches/7913.v56
 fb04edca1b23d759c5d13db52cc2c371  ./robot/5376.rbt
 528c3d754d8e54355ba038dfe8ebd621  ./robot/3101.rbt
 7efbdaa0a76b8f7920115038feee16c6  ./robot/7508.rbt

Here is the backtrace, sorry I forgot it in initial bug report:

scummvm: video/coktel_decoder.cpp:359: uint32 Video::CoktelDecoder::deLZ77(byte*, const byte*, uint32, uint32): Assertion `srcSize >= 1' failed.

Thread 1 "scummvm" received signal SIGABRT, Aborted.
0x00007ffff456cf80 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff456cf80 in raise () from /lib64/libc.so.6
#1  0x00007ffff456ead7 in abort () from /lib64/libc.so.6
#2  0x00007ffff45648ba in ?? () from /lib64/libc.so.6
#3  0x00007ffff4564942 in __assert_fail () from /lib64/libc.so.6
#4  0x0000555557290619 in Video::CoktelDecoder::deLZ77 (this=0x555558fdd8d0, 
    dest=0x55555bb0e3b5 "\200X\t\200\025\022\210X\024'\035,18\022\070\a\204\024\024,,\022\b\214\"\200\225\225L\214`pL\020\031\035,\003\203\031\201&\200\003\207\230\230z\225\233\210w)\004\006\203\005-\026\024\b\217Y\024\024,7\022|v\267V1Xz=\230z\017\200X\t\200\025\016\204V \033\033X\003\203\061\070\022\070\a\204\024\024,,\022\b\214\"\200\225\225L\214`pL\020\031\035,\003\217\031\201&\200", 
    src=0x55555bae2433 "\200y\375\017\377\300\203 .\231y\aw\200i\a\326\337\024\021\206\036\376\326\377\n\200=\003\212\064\062\064\357\064V33\f\342\204i\210\377X6\002\003\201\f\026\005\375\202o\220\t\206\225\225z\267\377\207\202O\032\202\020\025\063\377%\203\201\201\231\020\n\200\377\230\004\200\037\006\207\020&\373L\033\275\200\024\004\204\210m\357\061\030\034\001^\357\"\202\030\036\377\061\003\200\020\v\213vz\375vj\340>XL\230zL\377\006\200D\017\200\201\025\201\377\022 \016\206\236Yw\022\377\035\020\064\b\200", srcSize=0, destSize=173864) at video/coktel_decoder.cpp:359
#5  0x00005555572987b7 in Video::VMDDecoder::renderFrame (this=0x555558fdd8d0, rect=...) at video/coktel_decoder.cpp:2390
#6  0x00005555572980ca in Video::VMDDecoder::processFrame (this=0x555558fdd8d0) at video/coktel_decoder.cpp:2299
#7  0x0000555557297a7d in Video::VMDDecoder::decodeNextFrame (this=0x555558fdd8d0) at video/coktel_decoder.cpp:2201
#8  0x000055555729a801 in Video::AdvancedVMDDecoder::VMDVideoTrack::decodeNextFrame (this=0x55555bab4450) at video/coktel_decoder.cpp:2897
#9  0x00005555572aba72 in Video::VideoDecoder::decodeNextFrame (this=0x55555aa71b50) at video/video_decoder.cpp:195
#10 0x00005555568fecf2 in Sci::VideoPlayer::playUntilEvent (this=0x555558fdc978, flags=(Sci::VideoPlayer::kEventFlagEnd | Sci::VideoPlayer::kEventFlagEscapeKey), maxSleepMs=10)
    at engines/sci/graphics/video32.cpp:136
#11 0x0000555556900b6f in Sci::VMDPlayer::playUntilEvent (this=0x555558fdc978, flags=(Sci::VideoPlayer::kEventFlagEnd | Sci::VideoPlayer::kEventFlagEscapeKey)) at engines/sci/graphics/video32.cpp:716
#12 0x00005555569009b4 in Sci::VMDPlayer::kernelPlayUntilEvent (this=0x555558fdc978, flags=(Sci::VideoPlayer::kEventFlagEnd | Sci::VideoPlayer::kEventFlagEscapeKey), lastFrameNo=0, yieldInterval=-1)
    at engines/sci/graphics/video32.cpp:679
#13 0x000055555683f4ae in Sci::kPlayVMDPlayUntilEvent (s=0x555558f43450, argc=2, argv=0x555559840adc) at engines/sci/engine/kvideo.cpp:430
#14 0x000055555686e33d in Sci::callKernelFunc (s=0x555558f43450, kernelCallNr=146, argc=2) at engines/sci/engine/vm.cpp:443
#15 0x00005555568700b6 in Sci::run_vm (s=0x555558f43450) at engines/sci/engine/vm.cpp:896
#16 0x0000555556860045 in Sci::invokeSelector (s=0x555558f43450, object=..., selectorId=3, k_argc=2, k_argp=0x555559840a64, argc=0, argv=0x555559840a6c) at engines/sci/engine/selector.cpp:310
#17 0x0000555556828c7b in Sci::kListEachElementDo (s=0x555558f43450, argc=2, argv=0x555559840a64) at engines/sci/engine/klists.cpp:620
#18 0x000055555686e33d in Sci::callKernelFunc (s=0x555558f43450, kernelCallNr=90, argc=2) at engines/sci/engine/vm.cpp:443
#19 0x00005555568700b6 in Sci::run_vm (s=0x555558f43450) at engines/sci/engine/vm.cpp:896
#20 0x0000555556808fa4 in Sci::SciEngine::runGame (this=0x55555858e4c0) at engines/sci/sci.cpp:692
#21 0x0000555556807be1 in Sci::SciEngine::run (this=0x55555858e4c0) at engines/sci/sci.cpp:459
#22 0x0000555555950bf1 in runGame (plugin=0x5555585b5a20, system=..., edebuglevels=...) at base/main.cpp:264
#23 0x0000555555951e3b in scummvm_main (argc=1, argv=0x7fffffffde68) at base/main.cpp:530
#24 0x000055555594ecee in main (argc=1, argv=0x7fffffffde68) at backends/platform/sdl/posix/posix-main.cpp:45

comment:5 by voyageur, 22 months ago

mplayer displays a warning at the same point when playing vmd/37011.vmd:

Error while decoding frame!

Sorry for the noise then, it was a corrupted file problem indeed! Should I close this ticket, or do you want the video uploaded somewhere to take a closer look? (it is ~9MB so too large for attachment here)

Note: See TracTickets for help on using tickets.