Opened 8 days ago

Closed 5 days ago

Last modified 4 days ago

#15523 closed defect (fixed)

AGS: Blackwell Legacy fails with CharacterAnimate error

Reported by: dustincrogers-dev Owned by: tag2015
Priority: high Component: Engine: AGS
Version: Keywords:
Cc: Game:

Description

blackwell legacy crashes after asking joey about his powers with error !Character.animate: invalid loop 10 for view 17. Latest version of Scummvm

Attachments (1)

blackwell1.007 (858.7 KB ) - added by antoniou79 7 days ago.

Download all attachments as: .zip

Change History (10)

comment:1 by antoniou79, 8 days ago

Hello,

Could you clarify a few things?

  • What is your Android OS version?
  • What is the version of ScummVM specifically that you're testing with? (eg. 2.8.1 (currently on Play Store), 2.9.0 (just announced for testing), 2.10.0git (development build))?
  • What is the version of the game you're testing with? As far as I know, currently this game is at version number 3.7 on GOG (and I believe also Steam), last updated on September 2024.
  • Did you also try playing the game on a PC or other platform where it didn't crash at that point?
  • Did you play this game with a previous version of the ScummVM Android app, where it didn't crash? If so, do you recall which version of ScummVM?
  • Could you provide a save game just before asking Joey about his powers so we can quickly check?

comment:2 by sev-, 8 days ago

Component: --Unset--Engine: AGS
Summary: Blackwell Legacy on Retroid Pocket 4 Pro (Android arm64)AGS: Blackwell Legacy on Retroid Pocket 4 Pro (Android arm64)

comment:3 by dustincrogers-dev, 8 days ago

-Android OS version: 13
-SCummvm version: 2.9.0git10875
-Blackwell Legacy Version: 3.8 according to offline download
-Have not tried it on another platform getting to that point.
-I also have it on a scummvm port on retroarch, but have not had an acceptable experience with the audio in order to test. Attachment in progress.

comment:4 by antoniou79, 7 days ago

I was able to quickly test last night.
The bug is not Android specific. It happens with the Windows' version of ScummVM too. But it does not happen when running the game from its own executable (standalone).

I've tested on Windows with a recent build of 2.10.0git from master HEAD.
And on Android with the stable build for future 2.9.0.
I'm testing with the 3.8 version of the game (I've missed this update before, but now I have it).

The bug may be related to the recent changes to catch up with upstream AGS, since the line that's complaining was recently-ish changed.

Unfortunately, the saved game is not compatible if I try to load it from ScummVM 2.8.1 so I can't tell if the bug used to happen before or not.

I am attaching a saved game with ScummVM.

by antoniou79, 7 days ago

Attachment: blackwell1.007 added

comment:5 by tag2015, 7 days ago

Priority: normalhigh

Thanks a lot for reporting and testing! This must be fixed before release as it may also affect other games

comment:6 by tag2015, 7 days ago

Summary: AGS: Blackwell Legacy on Retroid Pocket 4 Pro (Android arm64)AGS: Blackwell Legacy fails with CharacterAnimate error

comment:7 by tag2015, 5 days ago

I can confirm that the same error happens using upstream AGS, it tested 3.6.1.29 (which matches ScummVM's), 3.6.1.30 and also the latest 3.6.2 beta.

I'll open a bugreport

comment:8 by tag2015, 5 days ago

Owner: set to tag2015
Resolution: fixed
Status: newclosed

In aa1d21fd:

AGS: Engine: fix Character.Animate in case called during idling

This fixes a regression after db71d92
in case Character.Animate() called during idling, and Loop number assertion is done
prior to view changing back to normal view, could cause game to error.

Pick out "stop_character_idling" function that checks idle state and releases the locked idle view.
From upstream 946fa71c9332cae98f31d8b7672a1fe7b76d46c5

Fix #15523

comment:9 by tag2015, 4 days ago

In ca5ced4c:

AGS: Engine: fix Character.Animate in case called during idling

This fixes a regression after db71d92
in case Character.Animate() called during idling, and Loop number assertion is done
prior to view changing back to normal view, could cause game to error.

Pick out "stop_character_idling" function that checks idle state and releases the locked idle view.
From upstream 946fa71c9332cae98f31d8b7672a1fe7b76d46c5

Fix #15523

Note: See TracTickets for help on using tickets.