Opened 3 years ago

Closed 3 years ago

#10590 closed defect (fixed)

MOHAWK: MYST ME: Crash when turning off pressure valve to lower elevator

Reported by: blam666 Owned by: bgK
Priority: normal Component: Engine: Mohawk
Version: Keywords:
Cc: Game: Myst


Myst (ME German windows version) crashes when you return to the hut later in the game to lower elevator for entering channelwood. I'm not too sure about this but it didn't seem to happen when I first tried this early in the game. But continuing from a save after two finished ages it crashes everytime you try this. I'm using stable build 2.0.1pre12-gd5488e1 and dev build 2.1.0git2325-ge3d62bb, happens in both versions.

The crash happens when you stay in the hut while lowering elevator. Lifting the elevator and waiting for the repeated stomping sound is fine, but when you turn off the valve and the other rhythmic sound repeats about 2 times then the game will crash to desktop.

Error message: Assertion failed! Program: (...) src-master/src/common/array.h, Line 192

Expression: idx < _size (see appendix screenshot)

You can easily avoid this by going out of the hut and to any place or directly to the elevator before the sound is heard repeatedly. Then the game won't crash and you can continue.

Attachments (1)

MystMECrash.png (11.0 KB ) - added by blam666 3 years ago.
Error Message

Download all attachments as: .zip

Change History (3)

by blam666, 3 years ago

Attachment: MystMECrash.png added

Error Message

comment:1 by dafioram, 3 years ago

Thanks for your report.

This is a good find.

From the start of the game,

  1. Raise tree at least 3
  2. Drop tree 3 levels

On start of third sound (or sooner) game will crash. Don't move from facing the boiler.

#0  0x00007ffff471ae97 in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff471c801 in __GI_abort () at abort.c:79
#2  0x00007ffff470c39a in __assert_fail_base (fmt=0x7ffff48937d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5555558c21c7 "idx < _size", file=file@entry=0x5555558c21b6 "./common/array.h", line=line@entry=192, function=function@entry=0x5555558c2500 <Common::Array<Common::QuickTimeParser::EditListEntry>::operator[](unsigned int)::__PRETTY_FUNCTION__> "T& Common::Array<T>::operator[](Common::Array<T>::size_type) [with T = Common::QuickTimeParser::EditListEntry; Common::Array<T>::size_type = unsigned int]") at assert.c:92
#3  0x00007ffff470c412 in __GI___assert_fail (assertion=0x5555558c21c7 "idx < _size", file=0x5555558c21b6 "./common/array.h", line=192, function=0x5555558c2500 <Common::Array<Common::QuickTimeParser::EditListEntry>::operator[](unsigned int)::__PRETTY_FUNCTION__> "T& Common::Array<T>::operator[](Common::Array<T>::size_type) [with T = Common::QuickTimeParser::EditListEntry; Common::Array<T>::size_type = unsigned int]") at assert.c:101
#4  0x00005555556f9e5e in Common::Array<Common::QuickTimeParser::EditListEntry>::operator[](unsigned int) (this=0x555555c17820, idx=1) at ./common/array.h:192
#5  0x00005555556f8ebf in Video::QuickTimeDecoder::VideoTrackHandler::getRateAdjustedFrameTime() const (this=0x5555567b7f10) at video/qt_decoder.cpp:740
#6  0x00005555556f7e58 in Video::QuickTimeDecoder::VideoTrackHandler::getNextFrameStartTime() const (this=0x5555567b7f10) at video/qt_decoder.cpp:412
#7  0x00005555556fd4b2 in Video::VideoDecoder::findNextVideoTrack() (this=0x555556496140) at video/video_decoder.cpp:877
#8  0x00005555556fb510 in Video::VideoDecoder::seek(Audio::Timestamp const&) (this=0x555556496140, time=...) at video/video_decoder.cpp:380
#9  0x00005555555f6e31 in Mohawk::VideoEntry::seek(Audio::Timestamp const&) (this=0x555555e42fd0, time=...) at engines/mohawk/video.cpp:103
#10 0x000055555562a044 in Mohawk::MystStacks::Myst::boilerResetGauge(Common::Rational const&) (this=0x555555daf610, rate=...)
    at engines/mohawk/myst_stacks/myst.cpp:2018
#11 0x000055555562aaf8 in Mohawk::MystStacks::Myst::tree_run() (this=0x555555daf610) at engines/mohawk/myst_stacks/myst.cpp:2207
#12 0x00005555556240ce in Mohawk::MystStacks::Myst::runPersistentScripts() (this=0x555555daf610) at engines/mohawk/myst_stacks/myst.cpp:366
#13 0x00005555555fa920 in Mohawk::MohawkEngine_Myst::doFrame() (this=
    0x555555c0eac0) at engines/mohawk/myst.cpp:383
#14 0x00005555555fa878 in Mohawk::MohawkEngine_Myst::run() (this=0x555555c0eac0) at engines/mohawk/myst.cpp:372
#15 0x00005555555b40d2 in runGame(Plugin const*, OSystem&, Common::String const&) (plugin=0x555555bfcfa0, system=..., edebuglevels=...) at base/main.cpp:264
#16 0x00005555555b52f5 in scummvm_main(int, char const* const*) (argc=1, argv=0x7fffffffdfb8) at base/main.cpp:530
#17 0x00005555555b225c in main(int, char**) (argc=1, argv=0x7fffffffdfb8)
    at backends/platform/sdl/posix/posix-main.cpp:45
Last edited 3 years ago by dafioram (previous) (diff)

comment:2 by bgK, 3 years ago

Owner: set to bgK
Resolution: fixed
Status: newclosed

Thanks for your report, this was fixed in commit c76c052. The next daily build should work properly.

Note: See TracTickets for help on using tickets.