Opened 9 years ago

Closed 6 years ago

#6736 closed defect (fixed)

TSAGE: R2R - Crash on exit Vampire Lair

Reported by: SF/alien-grey Owned by: dreammaster
Priority: blocker Component: Engine: TsAGE
Version: Keywords: has-save-game
Cc: Game: Return to Ringworld


ScummVM 1.7.0 or Daily Build.

Exiting the Vampire Lair makes ScummVM crash. This also happens when switching from Seeker to Miranda or Quinn.

In the attached archive you can find three save files. One from before entering the Vampire Lair (no bug). A save file after collecting the blue crystal and scroll (switching between Seeker and Miranda or Quinn is no longer possible/crash). And one just before leaving the Vampire Lair (crash on exit).

Ticket imported from: bugs/6736.

Attachments (3) (37.7 KB ) - added by SF/alien-grey 9 years ago.
R2R - Exit Vampire Lair.7z (10.8 KB ) - added by Alien-Grey 6 years ago.
R2R - Exit Vampire Lair.2.7z (10.8 KB ) - added by Alien-Grey 6 years ago.

Download all attachments as: .zip

Change History (20)

by SF/alien-grey, 9 years ago

Attachment: added

comment:1 by SF/alien-grey, 9 years ago

I've found the problem. I should've continued with Quinn first. Once Quinn is at The Forest it's possible to make Seeker exit from the Vampire Lair.

comment:2 by digitall, 9 years ago

Loading the savegame after collecting the blue crystal and scroll and switching to Miranda or Quinn gives the following assertion: scummvm: engines/tsage/scenes.cpp:116: void TsAGE::SceneManager::sceneChange(): Assertion `_objectCount == g_saver->getObjectCount()' failed.

comment:3 by digitall, 9 years ago

Loading the savegame just before leaving the lair gives the same assertion on exit.

comment:4 by SF/softwarespecial, 8 years ago

I have This game and it crashes on the ship at the very beginning I thought they were still making it compatible which would explain the crashing.

comment:5 by digitall, 8 years ago

Owner: set to Strangerke

comment:6 by digitall, 8 years ago

Summary: RINGWORLD2: Crash on exit Vampire LairTSAGE: R2R - Crash on exit Vampire Lair

comment:7 by digitall, 8 years ago

softwarespecial: Please test with the latest daily build from here:

If that crash still occurs, then please file it as a separate bug, attaching details including operating system, a savegame or instructions for replication, screenshots if applicable, and any debugging backtraces.

comment:8 by digitall, 8 years ago

strangerke: Any progress on tracking down the reason for this assertion in the Vampire Lair?

by Alien-Grey, 6 years ago

Attachment: R2R - Exit Vampire Lair.7z added

by Alien-Grey, 6 years ago

comment:9 by Alien-Grey, 6 years ago

I'm playing this game for the second time with ScummVM and run in to this bug again. After replaying the Vampire Lair three times and several hours later I could exit it without crashing.

As I'm not the only one running in to this bug I decided to attach a save game to exit the Vampire Lair. If you need it and don't want to loose any game play, make sure that Quinn is at the ARM Base and Miranda is waiting in the ARM cell for the ARM soldier to bring her food, before you use it.

I added it 2x by mistake because I didn't know if it was uploaded the first time.

comment:10 by csnover, 6 years ago

Priority: normalblocker

Raising all identified crasher, hang, and memory violation bugs which I could not fully triage myself to blocker priority for the next release.

comment:11 by csnover, 6 years ago

Owner: Strangerke removed

Removing all owners from release blockers so they can be reclaimed during the release process. If you are the previous owner and would graciously fix this bug for the next release, please go ahead and re-add yourself as owner.

comment:12 by csnover, 6 years ago

Keywords: has-save-game added

comment:13 by csnover, 6 years ago

Owner: set to csnover

comment:14 by csnover, 6 years ago

I don’t understand what the point is of that assertion. Why is the game not supposed to be able to add/remove saved objects during a scene?

comment:15 by dreammaster, 6 years ago

From memory, the savegame code for the TsAGE engine is somewhat different to how the original did things.. it simply dumped the area of memory that contained all the data for game objects. So, in the absense of that, I introduced a new mechanism where all the game objects derived from a common "saveable object" base class, that registers each object into a list. This list needs to remain constant, so that when loading a savegame, the correct data for each object can be loaded into that object.

However, there are some areas where temporary objects are created, such as "ScenePalette" objects used during the intro sequence. These need to be ensured to be freed after the sequence/cutscene is done, or else they'd permanently remain in the object list, and any save made could no longer be restored in your next play session. Hence the assert in the scenes.cpp was to ensure I'd correctly freed any temporary object I'd created.. scene transitions are a good point where any scene specific code should have already have been cleaned up and destroyed.

comment:16 by csnover, 6 years ago

dreammaster, I really don’t seem to know enough about TSAGE/R2R to get through this bug in a reasonable amount of time. Would you be willing to take a look at it? All that needs to be done to reproduce is:

  1. Download the
  2. Load ringworld2-cd.016
  3. Walk into the doorway at the left of the screen

comment:17 by dreammaster, 6 years ago

Owner: changed from csnover to dreammaster
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.