Opened 13 months ago
Last modified 6 months ago
#13335 new defect
AGS: Quest for Glory II: Trial by Fire Remake - Winning Keapon Laffin's Game causes crash
Reported by: | bliznik | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | Engine: AGS |
Version: | Keywords: | AGD:QFG2 | |
Cc: | Game: | Quest for Glory 2 |
Description
Winning the Wizard-only game against Keapon Laffin causes the game to crash. Upon winning, right after the "cloud/thunder" animation, the game will crash out. I've been able to replicate this three times.
System is Windows. ScummVM version is 2.6.0git3339-g5cb8202d9bc. Game is the AGD Interactive version of Quest for Glory II.
The crash log doesn't provide any data. There are 3 error messages about the sound not working properly (e.g., "Audio stream did not support seeking!"), but those error messages occur far before I even talk to Keapon Laffin, so I don't think those error messages relate to what causes the crash.
Attachments (2)
Change History (5)
by , 13 months ago
Attachment: | scummvm.log added |
---|
by , 7 months ago
Attachment: | qfg2agdi.005 added |
---|
comment:1 by , 6 months ago
Upstream doesn't show this problem, either winning or losing the game, just in case someone wanted to waste time like me to report upstream.
comment:2 by , 6 months ago
Seems to be a bit random now i tried it on scummvm itself. First loss without a debugger didn't trigger it, second loss with one did. Here is a backtrace:
Thread 1 "scummvm" received signal SIGSEGV, Segmentation fault. 0x00005555558b5b5a in AGS3::AGS::Shared::Bitmap::GetWidth (this=0x0) at ./engines/ags/shared/gfx/allegro_bitmap.h:113 113 return _alBitmap->w; (gdb) bt #0 0x00005555558b5b5a in AGS3::AGS::Shared::Bitmap::GetWidth() const (this=0x0) at ./engines/ags/shared/gfx/allegro_bitmap.h:113 #1 0x0000555555b0ace3 in AGS3::AGS::Engine::ALSW::ALSoftwareBitmap::ALSoftwareBitmap(AGS3::AGS::Shared::Bitmap*, bool, bool) (this=0x555558abbf50, bmp=0x0, opaque=true, hasAlpha=false) at ./engines/ags/engine/gfx/ali_3d_scummvm.h:96 #2 0x0000555555b08294 in AGS3::AGS::Engine::ALSW::ScummVMRendererGraphicsDriver::CreateDDBFromBitmap(AGS3::AGS::Shared::Bitmap*, bool, bool) (this=0x555557f2d8e0, bitmap=0x0, hasAlpha=false, opaque=true) at engines/ags/engine/gfx/ali_3d_scummvm.cpp:234 #3 0x0000555555b0aed4 in AGS3::AGS::Engine::ALSW::ScummVMRendererGraphicsDriver::GetSharedDDB(unsigned int, AGS3::AGS::Shared::Bitmap*, bool, bool) (this=0x555557f2d8e0, bitmap=0x0, hasAlpha=false, opaque=true) at ./engines/ags/engine/gfx/ali_3d_scummvm.h:185 #4 0x000055555591094d in AGS3::recycle_ddb_sprite(AGS3::AGS::Engine::IDriverDependantBitmap*, unsigned int, AGS3::AGS::Shared::Bitmap*, bool, bool) (ddb=0x0, sprite_id=4294967295, source=0x0, has_alpha=false, opaque=true) at engines/ags/engine/ac/draw.cpp:775 #5 0x0000555555919f70 in AGS3::recycle_ddb_bitmap(AGS3::AGS::Engine::IDriverDependantBitmap*, AGS3::AGS::Shared::Bitmap*, bool, bool) (ddb=0x0, source=0x0, has_alpha=false, opaque=true) at ./engines/ags/engine/ac/draw.h:156 #6 0x0000555555915428 in AGS3::prepare_room_sprites() () --Type <RET> for more, q to quit, c to continue without paging-- at engines/ags/engine/ac/draw.cpp:1706 #7 0x0000555555916fd1 in AGS3::construct_room_view() () at engines/ags/engine/ac/draw.cpp:2051 #8 0x0000555555917e84 in AGS3::construct_game_scene(bool) (full_redraw=true) at engines/ags/engine/ac/draw.cpp:2181 #9 0x0000555555921c74 in AGS3::create_savegame_screenshot() () at engines/ags/engine/ac/game.cpp:838 #10 0x0000555555921f10 in AGS3::save_game(int, char const*) (slotn=0, descript=0x7fffffffb8f0 "Autosave") at engines/ags/engine/ac/game.cpp:883 #11 0x000055555589e3bf in AGS::AGSEngine::saveGameState(int, Common::String const&, bool) (this=0x555557f437f0, slot=0, desc=..., isAutosave=true) at engines/ags/ags.cpp:274 #12 0x0000555555b1b75d in Engine::saveAutosaveIfEnabled() (this=0x555557f437f0) at engines/engine.cpp:595 #13 0x0000555555b1b1b6 in Engine::handleAutoSave() (this=0x555557f437f0) at engines/engine.cpp:542 #14 0x0000555555bdeb63 in DefaultEventManager::pollEvent(Common::Event&) (this=0x555556c879a0, event=...) at backends/events/default/default-events.cpp:87 #15 0x00005555558a099d in AGS::EventsManager::pollEvents() (this=0x555557f31000) at engines/ags/events.cpp:45 #16 0x00005555559a71ad in AGS3::update_polled_stuff_if_runtime() () --Type <RET> for more, q to quit, c to continue without paging-- at engines/ags/engine/main/game_run.cpp:1042 #17 0x00005555558ec86b in AGS3::AGS::Shared::load_room(AGS3::AGS::Shared::String const&, AGS3::AGS::Shared::RoomStruct*, bool, AGS3::std::vector<AGS3::SpriteInfo> const&) (filename=..., room=0x55555818a100, game_is_hires=false, sprinfos=...) at engines/ags/shared/game/room_struct.cpp:233 #18 0x0000555555959448 in AGS3::load_new_room(int, AGS3::CharacterInfo*) (newnum=30, forchar=0x5555583774f0) at engines/ags/engine/ac/room.cpp:439 #19 0x000055555595bb4e in AGS3::new_room(int, AGS3::CharacterInfo*) (newnum=30, forchar=0x5555583774f0) at engines/ags/engine/ac/room.cpp:921 #20 0x00005555559c10aa in AGS3::post_script_cleanup() () at engines/ags/engine/script/script.cpp:511 #21 0x00005555559c07dd in AGS3::RunScriptFunction(AGS3::ccInstance*, char const*, unsigned long, AGS3::RuntimeScriptValue const*) (sci=0x5555599b19b0, tsname=0x55555687c620 <AGS3::scfunctionname> "on_event", numParam=0, params=0x0) at engines/ags/engine/script/script.cpp:374 #22 0x00005555559c093a in AGS3::RunScriptFunctionInRoom(char const*, unsigned long, AGS3::RuntimeScriptValue const*) (tsname=0x5555571ba900 "room_b", param_count=0, params=0x0) at engines/ags/engine/script/script.cpp:399 #23 0x00005555559c0b86 in AGS3::RunScriptFunctionAuto(AGS3::ScriptInstType, char const*, unsigned long, AGS3::RuntimeScriptValue const*) (sc_inst=AGS3::kScInstRoom, tsname=0x5555571ba900 "room_b", param_count=0, p--Type <RET> for more, q to quit, c to continue without paging-- arams=0x0) at engines/ags/engine/script/script.cpp:435 #24 0x00005555559c0317 in AGS3::QueueScriptFunction(AGS3::ScriptInstType, char const*, unsigned long, AGS3::RuntimeScriptValue const*) (sc_inst=AGS3::kScInstRoom, fn_name=0x5555571ba900 "room_b", param_count=0, params=0x0) at engines/ags/engine/script/script.cpp:282 #25 0x00005555559bfc10 in AGS3::run_interaction_script(AGS3::AGS::Shared::InteractionScripts*, int, int) (nint=0x5555579ab940, evnt=6, chkAny=-1) at engines/ags/engine/script/script.cpp:190 #26 0x0000555555ac0313 in AGS3::process_event(AGS3::EventHappened const*) (evp=0x555558910ee4) at engines/ags/engine/ac/event.cpp:180 #27 0x0000555555ac1351 in AGS3::processallevents() () at engines/ags/engine/ac/event.cpp:365 #28 0x00005555559a61d4 in AGS3::game_loop_update_events() () at engines/ags/engine/main/game_run.cpp:657 #29 0x00005555559a6833 in AGS3::UpdateGameOnce(bool, AGS3::AGS::Engine::IDriverDependantBitmap*, int, int) (checkControls=true, extraBitmap=0x0, extraX=0, extraY=0) at engines/ags/engine/main/game_run.cpp:789 #30 0x00005555559a6d64 in AGS3::GameTick() () at engines/ags/engine/main/game_run.cpp:938 #31 0x00005555559a7107 in AGS3::RunGameUntilAborted() () at engines/ags/engine/main/game_run.cpp:1032 #32 0x00005555559a78ef in AGS3::initialize_start_and_play_game(int, int) --Type <RET> for more, q to quit, c to continue without paging-- (override_start_room=0, loadSave=-1) at engines/ags/engine/main/game_start.cpp:129 #33 0x000055555599fa91 in AGS3::initialize_engine(AGS3::std::map<AGS3::AGS::Shared::String, AGS3::std::map<AGS3::AGS::Shared::String, AGS3::AGS::Shared::String, Common::Less<AGS3::AGS::Shared::String> >, Common::Less<AGS3::AGS::Shared::String> > const&) (startup_opts=...) at engines/ags/engine/main/engine.cpp:1195 #34 0x000055555589dd93 in AGS::AGSEngine::run() (this=0x555557f437f0) at engines/ags/ags.cpp:195 #35 0x0000555555875171 in runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) (plugin=0x555556bdfeb0, enginePlugin=0x555556bdd220, system=..., debugLevels=...) at base/main.cpp:318 #36 0x0000555555876ab5 in scummvm_main(int, char const* const*) (argc=1, argv=0x7fffffffdde8) at base/main.cpp:619 #37 0x000055555587210b in main(int, char**) (argc=1, argv=0x7fffffffdde8) at backends/platform/sdl/posix/posix-main.cpp:44
comment:3 by , 6 months ago
Here is a savegame. Unfortunately you can't save in the game itself, so it's just a bit of time savings (click the talk icon on the hero to 'challenge to a game')
savegame right before winning the game and crashing