Opened 5 months ago
Closed 4 days ago
#15214 closed defect (fixed)
SAGA: IHNM: Cannot proceed to endgame segment
Reported by: | antoniou79 | Owned by: | bluegr |
---|---|---|---|
Priority: | high | Component: | Engine: SAGA |
Version: | Keywords: | soft lock | |
Cc: | Game: | I Have No Mouth |
Description
This was reported on GOG forums here:
https://www.gog.com/forum/i_have_no_mouth_and_i_must_scream/cannot_start_ending_scenario
And also I see a similar thread on the Steam forums here:
https://steamcommunity.com/app/245390/discussions/0/4333103687427195941/
I was able to test and reproduce the issue from a saved game provided by the GOG forum member that started the above linked thread on GOG forums.
I am testing on ScummVM 2.8.1 and also a recent dev build of 2.9.0git from master HEAD. The issue is reproducible in both if loading from the provided saved game (attached in the ticket, ihnm.s19 ("Save 4").
Description:
- After finishing the scenarios for all 5 characters, the player is again taken to the character selection screen, with no characters to select from, and is effectively soft-locked. "AM" in this case says "You're the last player in my little game", which indicates that the game thinks that there's still one scenario remaining before endgame.
More info:
- GOG and Steam versions come bundled with ScummVM 2.0.0 (Dec 9, 2017). I am not sure if the saved game, that the forum member provided, was created with ScummVM 2.0.0 or 2.8.1 -- I believe it's the latter though. I have only tested with 2.8.1 and 2.9.0git on Windows 10.
- I was able to hack the awry saved game, by editing the binary (uncompressed) saved game data to change the value of a variable from "02" to "01" (at address 0xA0B8 of the file). Note, the address of this variable is not fixed across saved games. This appears to fix the issue, and the game proceeds to the endgame section, but as a workaround / hack it can't be a proper solution.
- I was also able to start from an earlier saved game (provided by the same GOG forum member) at a point midway Ellen's scenario, and then go through Ben's, Nimdok's and finally Ted's, with ScummVM 2.9.0git. In this case I did not encounter the bug and the game proceeded to the endgame segment. Checking against the global flags from the awry saved game, it seems that in my playthrough I did some stuff differently with Nimdok (I got a win state for his scenario, whereas the awry saved game seems to have fail state as far as I can tell), so maybe that's a clue?
Attachments (4)
Change History (11)
by , 5 months ago
by , 5 months ago
Attachment: | scummvm-ihnm-00000.png added |
---|
by , 5 months ago
comment:2 by , 5 months ago
I have found at least one condition that can lead to this bug and it's affecting 2.8.1 and 2.9.0git (as far as I've tested):
The bug occurs at the end of Nimdok's scenario.
As far as I can tell, the game considers at least two actions as major during this scenario, and tracks them with global flags (12 and 13). One is getting the mirror and looking at it (flag 12), and the other is how you deal with the final choice about the lost tribe (when you have the Golem with you) (flag 13, set if Gollem kills the Lost Tribe).
If you look at the mirror, then no matter what you choose in the final choice (kill the tribe or transfer control of Gollem to tribe) the game will consider the scenario finished. AM will say different things depending on Nimdok's choice and his fate will be different, but the scenario is completed.
However, if you don't take the mirror or if you don't look at it (looking at it is the thing that "counts"), then the final choice can only be to destroy the lost tribe (or transfer Gollem's control to Mengele who will destroy the lost tribe, if you didn't have him look at the mirror). In this case the game will consider the scenario unfinished, and at the same time finished. Nimdok won't appear in the character selection screen, but AM's "epilogue" for the scenario suggests that Nimdok has to restart his scenario. Also, while only Ted is shown (if he is the last character), AM will not be using his special speech for the "final" player.
by , 5 months ago
comment:3 by , 5 months ago
Attached saved game "ihmn.s41" "NimdokNoMirror" is near the end of Nimdok's scenario.
From this point you can tell the Gollem to follow you outside, and then proceed to kill the Lost Tribe which will lead to the bugged state described in this ticket.
Or:
You can go back through the door to the right, use the switch, take the VAT (which will result in taking the mirror), look at the mirror, return to the room with Mengele and Gollem, and tell the Gollem to follow you outside. Any choice here, will properly finish the scenario.
comment:4 by , 10 days ago
Priority: | normal → high |
---|
Would be good to resolve this for the 2.9.0 release.
comment:7 by , 4 days ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Many thanks for your work and analysis @antoniou79!
Fixed with a workaround that disallows the player from finishing Nimdok's chapter, if Nimdok hasn't interacted with the mirror
The earlier saved game (Ellen's scenario) that I used to playthrough the game and reach the endgame scenario properly (testing with ScummVM 2.9.0git) is also attached (ihnm.s04, titled "Save 5").
And I can provide various saved games from the part I've played, and did not get the bug, if needed.
I should also note that I got various glitches during my play session. It was mostly animations with characters interacting with others and in cutscenes, but also, during Ben's scenario, the end choice seemed to always count as positive (win), even if Ben asked to eat the sacrificed child (which as far as I know should be a fail state). Edit: It seems that Ben's final choice has been reported as a bug in the past and the ticket was closed as it apparently happens like that in the original (#10013).
Anyway, the variable corruption seems to have taken place in Ellen's remaining scenario, Ben's or Nimdok's, and probably at the end of one of those scenarios, since that's when that variable is changed (a constant "-1" is supposed to be *added* to it).