Opened 10 years ago

Last modified 20 months ago

#6612 closed defect

WME: Vsevolod (DEMO) - Crash in Intro — at Version 3

Reported by: raziel- Owned by:
Priority: normal Component: Engine: Wintermute
Version: Keywords:
Cc: Game: Wintermute

Description (last modified by raziel-)

ScummVM 1.7.0git (Jun 1 2014 08:24:40) Features compiled in: Vorbis FLAC MP3 RGB zLib MPEG2 Theora AAC FreeType2 JPEG PNG

In the intro when the scenery gets revealed in the lower right of the screen by a close fly-by object i get an assertion (not always though, i was able to reach the game sometimes)

assertion "idx < _size": failed: file ".common/array.h", line 158

Vsevolod (Prologue Demo/Window/English)

AmigaOS4 - PPC - SDL - BE gcc (GCC) 4.2.4 (adtools build 20090118)

Ticket imported from: bugs/6612.

Edit:
The assertion changed into a full-blown crash, see crashlog

Change History (4)

comment:1 by raziel-, 10 years ago

This is one strange bug...here are the steps to reproduce (at least, i can)

1) Start ScummVM 2) Add the game to the launcher 3) Start the game 4) Choose "New" 5) Let the intro roll Note that ego is sitting from the cliff 6) Wait till the game lets you take control and quit 7) Start ScummVM once again 8) In the launcher choose the game once again 9) Choose "New" once again 10) The intro rolls but there is no more ego sitting on the cliff :-o

I take a shoot in the dark and say that the assertion happens once ego is meant to be animated the first time, but i'm of course not sure :-)

Why it happens though is beyond me...maybe the game writes some variables somewhere and reads them wrong on the second start?

comment:2 by bluegr, 9 years ago

MSVC catches an invalid memory write when starting a new game:

scummvm.exe!SWAP(Wintermute::BaseSurface * & a, Wintermute::BaseSurface * & b) Line 54 C++ scummvm.exe!Common::sortPartition(Wintermute::BaseSurface * first, Wintermute::BaseSurface * last, Wintermute::BaseSurface * pivot, bool (const Wintermute::BaseSurface , const Wintermute::BaseSurface ) * & comp) Line 180 C++ scummvm.exe!Common::sort(Wintermute::BaseSurface * first, Wintermute::BaseSurface * last, bool (const Wintermute::BaseSurface , const Wintermute::BaseSurface ) * comp) Line 220 C++ (... tons of sorts ...) scummvm.exe!Common::sort(Wintermute::BaseSurface * first, Wintermute::BaseSurface * last, bool (const Wintermute::BaseSurface , const Wintermute::BaseSurface *) * comp) Line 221 C++ scummvm.exe!Wintermute::BaseSurfaceStorage::sortSurfaces() Line 174 C++ scummvm.exe!Wintermute::BaseSurfaceStorage::initLoop() Line 73 C++ scummvm.exe!Wintermute::BaseGame::initLoop() Line 546 C++ scummvm.exe!Wintermute::AdGame::initLoop() Line 216 C++ scummvm.exe!Wintermute::AdGame::displayContent(bool doUpdate, bool displayAll) Line 1850 C++ scummvm.exe!Wintermute::WintermuteEngine::messageLoop() Line 233 C++ scummvm.exe!Wintermute::WintermuteEngine::run() Line 129 C++

comment:3 by raziel-, 4 years ago

Description: modified (diff)
Summary: WME: Vsevolod (DEMO) - Assertion in IntroWME: Vsevolod (DEMO) - Crash in Intro
Note: See TracTickets for help on using tickets.