Opened 10 years ago

Closed 9 years ago

Last modified 9 years ago

#6709 closed defect (fixed)

SAGA: IHNM - Ellen disappears sometimes when loading a save

Reported by: SF/saleck86 Owned by: bluegr
Priority: normal Component: Engine: SAGA
Version: Keywords:
Cc: Game: I Have No Mouth

Description

Hello ScummVM Dev Team We have found an unusual but gamebreaking bug with the game "I Have No Mouth and I Must Scream". The bug centres around the character Ellen in her scenario where upon loading a save, the character will disappear from the screen and the player is unable to do anything. Reloading the save does not seem to fix the problem either.

A bugged save for people to look at has been attached. Nothing has been done with Ellen except walking through the first door and saving. This save was created using ScummVM 1.7.0 using the Steam version.

Would anyone be able to have a look at this?

Thank You very much! -Daniel

Ticket imported from: bugs/6709.

Attachments (7)

IHNMAIMS-Ellen_Broken.zip (19.2 KB ) - added by SF/saleck86 10 years ago.
ihnm.s01 (19.1 KB ) - added by digitall 10 years ago.
configfiles.zip (1.3 KB ) - added by SF/saleck86 10 years ago.
ihnm.s00 (19.1 KB ) - added by digitall 10 years ago.
ihnm-md5sums.txt (857 bytes ) - added by digitall 10 years ago.
MD5 Checker 002753_15082014.txt (1.6 KB ) - added by SF/saleck86 10 years ago.
newconfigfiles.zip (1.2 KB ) - added by SF/saleck86 10 years ago.

Download all attachments as: .zip

Change History (44)

by SF/saleck86, 10 years ago

Attachment: IHNMAIMS-Ellen_Broken.zip added

comment:1 by digitall, 10 years ago

Summary: Ellen disappears sometimes when loading a saveSAGA: IHNM - Ellen disappears sometimes when loading a save

comment:2 by digitall, 10 years ago

From my comments on scummvm-devel: I took a quick look at this and I can NOT replicate this problem with the current v1.8.0git master code compiled on Linux x86_64.

If I start the game and save in Ellen's chapter, just after entering the pyramid, I can load the resulting game fine.

However, from loading your savestate, the behaviour is as you have described.

comment:3 by digitall, 10 years ago

I initally thought from the savegame naming that you have made source code changes i.e. the savegame name differs from our standard "ihnm.s??" form, but you have indicated that you have made no changes.

This is likely to be due to a manually edited config file. Could you please attach this for reference, or try to repeat this from a standard detection please to confirm if this is related?

by digitall, 10 years ago

Attachment: ihnm.s01 added

comment:4 by digitall, 10 years ago

Attaching "bad" savegame from zip file for comparison.

by SF/saleck86, 10 years ago

Attachment: configfiles.zip added

comment:5 by SF/saleck86, 10 years ago

I'll do both. Here are the config files for Windows, Mac and Linux that I use for the Steam version. I will go ahead and do a standard detection in Scumm on the machine in question and report back to you.

by digitall, 10 years ago

Attachment: ihnm.s00 added

comment:6 by digitall, 10 years ago

Thanks. I doubt that is the cause of this problem, but it should be eliminated first.

Here is a "good" savegame from Linux x86_64 with v1.8.0git for comparison.

comment:7 by digitall, 10 years ago

Saleck: Also, some further questions: 1. Does this bug occur on all platforms i.e. Win32, OSX and Linux? 2. Does this bug occur reliably when started from a new savegame?

Just I have yet to replicate this here, except using the "bad" savestate.

comment:8 by digitall, 10 years ago

Resolution: worksforme

comment:9 by digitall, 10 years ago

Tried replicating with the configuration files you gave. Still no replication... Currently changing bug state to "works-for-me".

by digitall, 10 years ago

Attachment: ihnm-md5sums.txt added

comment:10 by digitall, 10 years ago

Saleck: One other thing to check is that we both have the same IHNM datafiles. Attaching md5sums of my IHNM datafiles from the CD for comparison.

comment:11 by digitall, 10 years ago

Status: newpending

comment:12 by digitall, 10 years ago

As we can't replicate, we can't continue to investigate without further details. Setting to pending-works-for-me.

comment:13 by SF/saleck86, 10 years ago

I have 3 machines. One with Win 7 64bit / Linux Mint 17 64bit on. I tried to recreate the loading problem on there and so far I haven't done it. Another machine is a MacBook Pro with Mac OS 10.9.4 64bit on it, no problems on there either. The final machine is a Win 7 32bit /Ubuntu 14.04.1 machine. Ubuntu doesn't seem to be affected by the problem but it always affects the Win 7 32bit installation. I cannot load an Ellen scenario at all on there. I will be trying standard detections on them all first though before I can claim that the machines with no loading problems are truely 100% problem free.

A number of customers on the Steam Community Hubs have the problem though but a number of them don't seem to ever post machine specs.

I'll attach MD5 info shortly.

by SF/saleck86, 10 years ago

comment:14 by SF/saleck86, 10 years ago

MD5 Stuff

comment:15 by digitall, 10 years ago

Well, those MD5sums match the list I gave you, however you appear to be missing several of the resource datafiles: http://wiki.scummvm.org/index.php/Datafiles#I_Have_No_Mouth.2C_and_I_Must_Scream

Specifically scripts.res and voicess.res are missing...

comment:16 by digitall, 10 years ago

Hmm.. So this only seems to affect Windows 7 32-bit?

Will try to replicate on my 32-bit WinXP box.

To be clear, are you using precompiled binaries from http://www.scummvm.org/downloads/#stable or compiling yourself?

comment:17 by digitall, 10 years ago

Nope. Can't replicate on WinXP 32-bit here with the v1.7.0 Win32 zipfile release: http://prdownloads.sourceforge.net/scummvm/scummvm-1.7.0-win32.zip?download

comment:18 by SF/saleck86, 10 years ago

Yes sorry I missed a few files from the list. The binaries are precompiled from that very link.

comment:19 by digitall, 10 years ago

Will leave this "pending works-for-me" until someone with Win7 32bit can test this...

comment:20 by digitall, 10 years ago

Right, so not due to corrupt or variant datafiles i.e. the remaining two files' MD5sums match the list I gave you here?

It is odd that you can not load any Ellen savegame on Win7 32-bit. You may want to try removing all your IHNM savegames from the savegame location and then see if this "fixes" the load/save from a newgame start... i.e. the "bad" savestate file may provoke a problem in the saveload parsing which then breaks all other savestate loading...

comment:21 by SF/saleck86, 10 years ago

Ok after completely recreating the config files, the issue seems to no longer crop up.. I'mn not sure why this is the case as the launch parameters havent changed at all. There mustve been a problem somewhere that got solved by slimming down the config file a bit.

I'll need to do some more testing before I can confirm it but so far, the problem seems to have gone from the 32bit machine :)

comment:22 by digitall, 10 years ago

Saleck: Can you try with the latest v1.8.0git Win32 development build from buildbot on Win7 32-bit as well?: http://buildbot.scummvm.org/snapshots/master/mingw-w32-master-latest.zip

If this exhibits the problem, then this indicates that we can replicate with debug builds and thus getting you to run this under MinGW's gdb will allow us to do some investigation.

Also, can you try replicating with v1.6.0 Win32 release and earlier releases to see if this problem occurs with earlier releases..

comment:23 by digitall, 10 years ago

Oh hell.. :/ This could be a nasty lurking issue in the SAGA saveload code when you change the target name. :/

Could you try to get a stable replication again and track down as otherwise this could occur again randomly :/

comment:24 by lordhoto, 10 years ago

Ok after completely recreating the config files, the issue seems to no longer crop up.. I'mn not sure why this is the case as the launch parameters havent changed at all.

Can you upload your new configuration files?

by SF/saleck86, 10 years ago

Attachment: newconfigfiles.zip added

comment:25 by SF/saleck86, 10 years ago

New config files attached As for re-creating the problem now, I can't seem to do that on any machine. I've tried making over 50 new games, saving and loading but the problem has vanished. I'll keep trying though.

comment:26 by SF/saleck86, 10 years ago

No update here I'm afraid. I still seem to recreate the problem now on any system no matter how many times I try. I guess the problem fixed itself but I'd still love to know what was causing it.

Anyway, thank you for looking into this even though little really resulted from it. If it crops up again, I'll be sure to get ahold of some affected saves.

comment:27 by wjp, 10 years ago

Just for completeness: you mention nothing has been done with Ellen in this savegame before, but what did you do with the other characters?

comment:28 by SF/saleck86, 10 years ago

I did nothing with anyone else. I simply started up the game, picked Ellen, walked into the first room, waited for her little talk to end and saved. Upon loading she had simply vanished.

comment:29 by bluegr, 10 years ago

Just a thought: could this be related to subtitle speed? Can you try changing it to the slowest setting? Ellen makes a comment when entering the pyramid, IIRC, so if the save was made while she made the comment, this could be a possible explanation for the weirdness...

comment:30 by wjp, 10 years ago

Also, for what it's worth, Ellen is far offscreen in this savegame, at position (2440, 65280, 13). (62580 == 0xFF00.)

comment:31 by wjp, 10 years ago

And interestingly that position (2440, 62580, 13) is also exactly the position to which actor 9 gets initialized.

comment:32 by SF/saleck86, 10 years ago

It is not possible to save whilst characters are talking to themselves. The + selector disappears from screen until they are done. Nevertheless, I went through and tried on a number of subtitle speeds (0, 1, 6, 254, 255 to name a few) and they didn't make any difference. I didn't even notice a bit in change in subtitle speed from altering this option.

comment:33 by wjp, 10 years ago

Further position info: the location of actor 9 in this savegame is also exactly the position at which Ellen enters the room (from the left), at (440, 1080, 0). So it seems somehow the positions of actors 0 and 9 have been swapped.

There are a couple of locations in the SAGA engine which can swap actor positions, such as sfunc 34 and also correct-protagonist-choosing code at loading, but neither seems relevant at first glance as those should also have swapped the protagonist flag (which isn't the case in the save).

Any ideas from SAGA devs on possible causes for this?

comment:34 by wjp, 10 years ago

The problem may be that _scene->_currentProtag isn't initialized.

I can reproduce the problem if I "accidentally" initialize it to 8201 (== ID of object 9). To fully reproduce the symptoms, this does require saving once, then loading (after which Ellen is in an invalid position) and then saving again (after which the evidence of the broken _currentProtag has disappeared by the fixup in the saveload code).

comment:35 by digitall, 10 years ago

No commits in master and no open pulls related to this.

Do we have any WIP patch for this to add a sanity check / initialization to _scene->_currentProtag ? Or is this pending a refactoring / clean up of the SAGA protagonist loading / saving code?

comment:36 by bluegr, 9 years ago

Owner: set to bluegr
Priority: highnormal
Resolution: worksformefixed
Status: pendingclosed

comment:37 by bluegr, 9 years ago

Thanks for your bug report! :)

This was caused by a buggy code for savegames that was left while developing IHNM. It should no longer be needed, and it has been removed in commit 2a6a79b. That savegame is already broken though, so there's not much that can be done about it.

Many thanks to wjp for all his observations on this! :)

The fix will be available in the next daily version of ScummVM. Closing this as resolved.

Note: See TracTickets for help on using tickets.