alexbatalov / fallout2-ce

Fallout 2 for modern operating systems
Other
1.66k stars 109 forks source link

Crashes with some talking heads #342

Open SomeTroglodyte opened 6 months ago

SomeTroglodyte commented 6 months ago

These are relatively rare - I can chat with both talking heads in question quite a lot, but specific dialogue options will reproducibly crash.

Running gog data files with a binary compiled from source on Linux Mint 21.2, patched with that compat_resolve_path(basePath); in fileFindFirst thingy.

First one - the Enclave guy one can get from the Gecko Reactor Computer: SLOT08 - Gecko Plant.zip Get talking head: Use computer, 1, 1, 2, 2, 2, X, Y, Z, 2, 2, 2 Any option that makes the guy frown - e.g. 1, 1

*** buffer overflow detected ***: terminated
Aborted (core dumped)

DEBUGACTIVE=log outputs the following to the log after loading and activating the computer:

``` LOADSAVE: Total load data read: 64428 bytes. Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Dialogue Reaction: Said Neutral Choosing fidget 2 out of 2 Loading current save-file version (2)Starting lipsynch speechEnding lipsynch systemChoosing fidget 2 out of 2 Choosing fidget 1 out of 2 Dialogue Reaction: Said Neutral Loading current save-file version (2)Starting lipsynch speechEnding lipsynch systemChoosing fidget 1 out of 2 Choosing fidget 1 out of 2 Dialogue Reaction: Said Neutral ```

Second one - Broken Hills, Marcus. Do the francis/jacob conspiracy quest far enough, and find the missing people in the underground. Report one of them to Marcus, then when you try to report the other, crash. Similar log, last entry a "Choosing fidget".

Note - with Fallout 1 CE and the Tandi dialogue there's similar crashes - it's actually impossible to exhaust her dialogue without crashing, using the release binary. Compiled from source, however, there's not a single crash in any talking head dialogue in the entire game. Seems like something similar was already fixed in fo-ce-1, but since most files have no blame history (I suspect gdialog.cc in fo1, game_dialog.cc in fo2), no blindly migrating some diff...

YellowApple commented 2 months ago

I'm able to reproduce this with the latest release binary running in Lutris (via Flatpak on MicroOS), specifically in the case of the Enclave guy on the Poseidon Oil computer. Consistently crashes when picking "President?", with similar log output:

``` INFO: Dialogue Reaction: INFO: Said Neutral INFO: Dialogue Reaction: INFO: Said Neutral INFO: Dialogue Reaction: INFO: Said Neutral INFO: Dialogue Reaction: INFO: Said Neutral INFO: Dialogue Reaction: INFO: Said Neutral INFO: Dialogue Reaction: INFO: Said Neutral INFO: Dialogue Reaction: INFO: Said Neutral INFO: Dialogue Reaction: INFO: Said Neutral INFO: Dialogue Reaction: INFO: Said Neutral INFO: Choosing fidget 2 out of 2 INFO: Loading current save-file version (2) INFO: Starting lipsynch speech INFO: Ending lipsynch system INFO: Dialogue Reaction: INFO: Said Good INFO: Starting transition... INFO: Waiting for fidget to complete... INFO: Finished transition... INFO: Choosing fidget 2 out of 2 INFO: Loading current save-file version (2) INFO: Starting lipsynch speech INFO: Ending lipsynch system INFO: Dialogue Reaction: INFO: Said Neutral INFO: Loading current save-file version (2) INFO: Starting lipsynch speech INFO: Ending lipsynch system INFO: Dialogue Reaction: INFO: Said Neutral *** buffer overflow detected ***: terminated ```

Also noticed a similar crash when talking to Sulik about his equipment after recruiting him, but chalked it up to a fluke so I didn't manage to grab logs for that crash.

EDIT: I can also confirm that PR #347 fixes the crash.