Opened 8 months ago

Closed 6 months ago

#14665 closed defect (fixed)

MOHAWK: MYST: Crash at Fortress Simulator When Doing A Complete Rotation

Reported by: DjDiabolik Owned by: sluicebox
Priority: blocker Component: Engine: Mohawk
Version: Keywords:
Cc: Game: Myst

Description (last modified by digitall)

If the Fortress Rotation Simulator is used in the Mechanical Age to do a full rotation, this crashes with a assertion from Quicktime video code.

Attachments (3)

myst-000.mym (14.1 KB ) - added by DjDiabolik 8 months ago.
myst-001.mym (11.3 KB ) - added by digitall 6 months ago.
myst-001.mys (95 bytes ) - added by digitall 6 months ago.

Download all attachments as: .zip

Change History (25)

by DjDiabolik, 8 months ago

Attachment: myst-000.mym added

comment:1 by DjDiabolik, 8 months ago

I have tryed to attach current scummvm.log but apparently i can't and i obtain 'internal server error (500) try to paste here:
[2023-10-12 16:31:25] ScummVM 2.8.0git8373-g32e2a5b4207 (Oct 11 2023 04:11:14)
[2023-10-12 16:31:25] TAINTED Vorbis FLAC MP3 ALSA SEQ sndio TiMidity RGB zLib MPEG2 FluidSynth MikMod Theora VPX AAC A/52 FreeType2 FriBiDi JPEG PNG GIF taskbar TTS cloud (servers, local) ENet SDL2 TinyGL OpenGL (with shaders)
[2023-10-12 16:31:25] --- Log opened.
[2023-10-12 16:31:25] Using game controller: Nacon GC-100
[2023-10-12 16:31:25] WARNING: SDL mixer output buffer size: 512 differs from desired: 1024!
[2023-10-12 16:31:25] Using game controller: Nacon GC-100
[2023-10-12 16:31:45] Running Myst (Windows/Italian)
[2023-10-12 16:31:45] myst.dat: a5795ce1751fc42525e4f9a1859181d5, 66795223 bytes.
[2023-10-12 16:31:45] WARNING: [UnityTaskbarManager::addRecent] Not implemented!

comment:2 by DjDiabolik, 8 months ago

No way... i can't attach my current scummvm.log ever obtain 'internal server error (500).

comment:3 by DjDiabolik, 8 months ago

Summary: Myst - Games Crash at Simulator Rotation only whit a complete rotation. It's a BUG ?Myst - Games Crash at Fortress Simulator Rotation only whit a complete rotation. It's a BUG ?

Put correct names... Fortress Simulator rotation.
The games crash when i try to make a complete rotation...

comment:4 by tag2015, 8 months ago

Priority: blockerhigh
Summary: Myst - Games Crash at Fortress Simulator Rotation only whit a complete rotation. It's a BUG ?MOHAWK: MYST: Crash at Fortress Simulator Rotation only whit a complete rotation

comment:5 by digitall, 8 months ago

Description: modified (diff)
Priority: highnormal
Summary: MOHAWK: MYST: Crash at Fortress Simulator Rotation only whit a complete rotationMOHAWK: MYST: Crash at Fortress Simulator When Doing A Complete Rotation

Replicated with the latest git master and Myst English. If the Fortress Rotation Holosimulator is used and you do a full rotation, ScummVM crashes with an assertion:
Running Myst (Windows/English)
myst.dat: ae3258c9c90128d274aa6a790b3ad181, 66236882 bytes.
scummvm: ./common/array.h:234: T& Common::Array<T>::operator[](size_type) [with T = Common::QuickTimeParser::EditListEntry; size_type = unsigned int]: Assertion `idx < _size' failed.
Aborted

comment:6 by digitall, 8 months ago

Description: modified (diff)

comment:7 by digitall, 8 months ago

This assertion does not occur with v2.7.1 stable release. Bisecting...

comment:8 by digitall, 8 months ago

156ba82247ff2c99fe7cd56c54e7b393c434944e is the first bad commit
commit 156ba82247ff2c99fe7cd56c54e7b393c434944e
Author: Harishankar Kumar <hari01584@…>
Date: Mon Apr 10 09:25:58 2023 +0530

VIDEO: Add support for custom rate in quicktime videos


used in mediaband undome

video/qt_decoder.cpp | 5 +++++
1 file changed, 5 insertions(+)

comment:9 by DjDiabolik, 7 months ago

mmmmmmm... If you need any other file or information, just ask.

Or from now can you let me know when I can update the daily build and play this game in Italian?

Lol... i have buy "RealMyst: Masterpiece Edition" from steam but it's all in english whitout subtitle or similar it's no fair to play :)

comment:10 by DjDiabolik, 7 months ago

For a Purpose Testing i have tryed right now to update my Daily Build to commit:
https://buildbot.scummvm.org/dailybuilds/master/debian-x86-64-master-e25a9b89.tar.xz

Extracted and try same point and crash it's append again :)

I can also try the current stable version.... To see what's append...

comment:11 by digitall, 7 months ago

@DjDiabolik: There is no point to you doing any further testing on this bug currently. We know what the cause of the regression is and when it was introduced so you testing the stable builds serves no purpose.

I could remove the code now if I wanted to to fix this, but this was added to fix a different issue in the DIRECTOR engine under development.

So just removing it will fix this issue and break something else. It will take a bit of time to work out the "correct" solution for this, so please have some patience.

in reply to:  11 comment:12 by DjDiabolik, 7 months ago

Replying to digitall:

@DjDiabolik: There is no point to you doing any further testing on this bug currently. We know what the cause of the regression is and when it was introduced so you testing the stable builds serves no purpose.

I could remove the code now if I wanted to to fix this, but this was added to fix a different issue in the DIRECTOR engine under development.

So just removing it will fix this issue and break something else. It will take a bit of time to work out the "correct" solution for this, so please have some patience.

ah ok...I had mistakenly understood that something had been already done:)
Sorry for make confusion

So at right now... i can play the games whit current stable 2.7.1.
Apparently here this point can be pass whitout any problems and i can use same savegame files :)

comment:13 by AndywinXp, 6 months ago

Should the priority for this be raised for the 2.8.0 release cycle?

comment:14 by lotharsm, 6 months ago

Priority: normalblocker

in reply to:  13 comment:15 by lotharsm, 6 months ago

Replying to AndywinXp:

Should the priority for this be raised for the 2.8.0 release cycle?

I raised the priority to "blocker".

comment:16 by digitall, 6 months ago

The original bug submitter savegame seems to load on Myst Island, rather than the Mechanical Age closest to the bug point. Will upload a savegame for Mechanical Age.

To replicate, load the savegame, click right side and then click to move into the Fortress. Take the right hand path through the fortress entry door and in the chamber with the throne, the Fortress Rotation holo simulator is to the left side of the chamber from the entry door, to the left of the throne.

Click on the simulator, let it start, then push the left lever up to unlock, then the right lever up so the simulation rotates. When the simulation hits a full rotation, the assertion will be triggered.

comment:17 by digitall, 6 months ago

Worst case, "changeCard 6025" at the debug console (CTRL+ALT+d) after loading the savegame should be sufficient to be in the position needed. Click the holosimulator on the left of that card.

comment:18 by digitall, 6 months ago

SIGH. I also get a similar crash when using the levers in the Clocktower puzzle on Myst. The reset lever on the right crashes out in a similar way when the weight on the left returns to the top

by digitall, 6 months ago

Attachment: myst-001.mym added

by digitall, 6 months ago

Attachment: myst-001.mys added

comment:19 by digitall, 6 months ago

The clocktower puzzle is Card 4113 in the Myst stack. You can do a "changeCard 4113" from a new game state to get there or solve the clocktower bridge puzzle :)

comment:20 by sluicebox, 6 months ago

I've reverted the QuickTime commits from April. They were not properly documented or communicated. They also allegedly implemented something that the QuickTimeDecoder code has multiple comments explaining isn't implemented with TODOs and FIXMEs, and there's even a comment for some behavior that specifically references Myst HOLO.MOV which now crashes.

Whatever was being attempted, it will require another approach.

I've tested that this fixes card 6025 and 6156, I'll leave this open for digitall to confirm.

https://github.com/scummvm/scummvm/commit/38d507d9b801d375bedfa612a557ee1a31c345ea

comment:21 by digitall, 6 months ago

Tested with Myst Clocktower Puzzle, Mechanical Age Fortress Rotation Simulator and Controls. All work fine with the latest git master.

It is not optimal to revert, but as @sluicebox said, the QT decoder needs a fuller refactoring to implement this feature for DIRECTOR without breaking existing games and a retest of the main engines / games which use QT videos, especially MOHAWK games.

Closing this as fixed (for now)

comment:22 by digitall, 6 months ago

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