Opened 8 months ago

Closed 8 months ago

#13176 closed defect (fixed)

ULTIMA 8: Inventory gone after leaving Central Tenebrae

Reported by: ducksys Owned by: mduggan
Priority: normal Component: Engine: Ultima
Version: Keywords: inventory backpack
Cc: Game: Ultima VIII: Pagan

Description

ScummVM version:

Release 2.5.0 or
2.6.0git2103-g27fefddd8f (Dec 22 2021 21:53:36)

How to reproduce:

  1. open the attached savegame
  2. open the backpack and then close it (just to make sure it still works)
  3. leave Central Tenebrae by foot or the recall item
  4. open backpack

Expected: the backpack opens and you still have your armor and weapon
Actual: the backpack doesn't open and your armor and weapon are gone

Other info:

  • After step 3 dragging any item onto the avatar crashes scummvm
  • If you leave the area by foot, and then return, you will find your backpack and every item dropped on the floor, except the Scimitar of Khumash-Gor which always disappears
  • The bug started happening after dropping and arranging a lot of items on the floor in Central Tenebrae around the teleport pad, and then saving the game while still in Central Tenebrae
  • The only way to get a new backpack is to ask Mythran for a potion, but saving the game and leaving the area re-triggers the bug

Attachments (2)

ultima8.054 (216.4 KB ) - added by ducksys 8 months ago.
ultima8.034 (215.2 KB ) - added by ducksys 8 months ago.

Download all attachments as: .zip

Change History (9)

by ducksys, 8 months ago

Attachment: ultima8.054 added

comment:1 by mduggan, 8 months ago

Great, thanks!
I had seen this bug once before and someone else reported it happening, but I had never been able to make a reliable repro case for it - going back to my last save didn't repro the problem. Having this save helps a lot. I'll take a look at it.

comment:2 by mduggan, 8 months ago

I worked out what is wrong with this save. Unfortunately I still don't understand how the game got into this state.

I'll keep looking for the root cause, but for now I put in a workaround in commit 13c4196.

by ducksys, 8 months ago

Attachment: ultima8.034 added

comment:3 by ducksys, 8 months ago

Thanks for looking into this, I found another savegame where you can still freely teleport back and forth to Central Tenebrae, but then after saving and loading the game the bug starts happening again so:

1 load ultima8.034
2 verify that you can teleport between the plateau and Central Tenebrae without losing your inventory
3 create a new savegame while in Central Tenebrae, near the teleporter pad
4 load the newly created savegame
5 teleport to the plateau
6 open your inventory, the inventory is now broken again

Perhaps this will help in figuring out what's happening.

comment:4 by mduggan, 8 months ago

Thanks, there is an extra strange thing happening here that I still don't know how it gets in that state.

The engine code is trying to pop some things into containers that don't exist, and that can corrupt the ethereal list.

I'll put in another workaround to avoid this corruption and keep the list consistent at least. I also noticed some small behaviour differences from the original game that might trigger the issue in the first place, so I'll fix those.

comment:5 by mduggan, 8 months ago

Implemented some improvements in 3b3b953. I think these probably also fix the situation that led to the original bug, but the first workaround should also be harmless so I'll leave it in place too for people with corrupted saves. Please give it a spin and let me know if you see any issues.

comment:6 by ducksys, 8 months ago

Using build 2.6.0git2211-g142f1d0c81d (Dec 29 2021 04:51:25)
I managed to recover my savegame and the bug seems gone.

Thank you very much for fixing this!

comment:7 by mduggan, 8 months ago

Owner: set to mduggan
Resolution: fixed
Status: newclosed

Thanks for confirming! I'll mark this as fixed.

Note: See TracTickets for help on using tickets.