Opened 5 years ago

Last modified 5 years ago

#6612 new defect

WME: Vsevolod (DEMO) - Assertion in Intro

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

Description

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.

Change History (2)

comment:1 by raziel-, 5 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, 5 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++

Note: See TracTickets for help on using tickets.