Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

King's Quest III Redux freezes at specific point #1213

Closed
HunterZ opened this issue Feb 21, 2021 · 8 comments
Closed

King's Quest III Redux freezes at specific point #1213

HunterZ opened this issue Feb 21, 2021 · 8 comments
Assignees
Labels
context: bw-compat supporting deprecated runtime functionality, importing and converting game data type: bug unexpected/erroneous behavior in the existing functionality
Milestone

Comments

@HunterZ
Copy link

HunterZ commented Feb 21, 2021

Describe the bug
Playing AGD's King's Quest III Redux using AGS 3.5. The game freezes during the scene in which you give the wizard cookie-infused porridge - by which I mean the characters stop talking and just stand there looking at each other, while the clock ticks upward and the background noises continue to play.

AGS Version
Running with: AGS 3.5.0.30
Compiled with: AGS 3.2.1.1115

Game
King's Quest III Redux from http://www.agdinteractive.com/games/kq3/download/download.html

To Reproduce
Steps to reproduce the behavior:

  1. Load attached save file agssave.027.KQ3Save.zip
  2. Open inventory
  3. Select porridge
  4. Use porridge on wizard
  5. Wait for scene to come to a halt

Expected behavior
Watch from 2:29:13: https://youtu.be/mAfIhJTRuWk?t=8953
Freeze should NOT happen around 2:30:41, just after the player character finishes reciting the incantation, but does.

Screenshots
See video.

Desktop (please complete the following information):

  • OS: Windows x64
  • Version 10

Additional context
Also recently reported by another user on Raspberry Pi: http://www.agdinteractive.com/forum/viewtopic.php?p=238894#p238894

Nothing appears in the log at this time, except maybe these lines:

WARNING: channel 2 - same clip assigned
Game.SetAudioTypeVolume: type: 1, volume: 78, change: 1680
Game.SetAudioTypeVolume: type: 3, volume: 78, change: 1680
WARNING: channel 2 - same clip assigned
@ivan-mogilko ivan-mogilko self-assigned this Feb 21, 2021
@ivan-mogilko ivan-mogilko added context: bw-compat supporting deprecated runtime functionality, importing and converting game data type: bug unexpected/erroneous behavior in the existing functionality labels Feb 21, 2021
@ivan-mogilko ivan-mogilko added this to the 3.5.1 milestone Feb 21, 2021
@ivan-mogilko
Copy link
Contributor

ivan-mogilko commented Feb 21, 2021

Hmm, while testing this I also noticed that portraits are not displayed on the side where they should. After loading this save during the first dialog wizard's portrait is displayed on the right, while in original it displayed on the left, according to where wizard stands.

EDIT: Not sure if this is not a in-game mistake though, as it seems the portraits are set to "alternate" mode rather than "character position" mode.

@ivan-mogilko
Copy link
Contributor

ivan-mogilko commented Feb 21, 2021

The freeze itself seem to happen because the script keeps checking for some mp3 audio position (calls GetMP3PosMillis) which was either never reached, or skipped somehow. As the music is no longer playing GetMP3PosMillis returns 0, and game is stuck in an endless waiting loop.

UPDATE: what happens is that it tries to play some music right after incantation, but fails for some reason, and this breaks all the following script which relies on it. I'll continue investigating.

@ivan-mogilko
Copy link
Contributor

ivan-mogilko commented Feb 21, 2021

Alright, so this was the stupidest mistake possible, and should be fixed with 57d34dd in master branch.

Was broken about 4 years ago in v3.4.1.

The new build may be downloaded from the build server:
https://cirrus-ci.com/build/4689847932682240

@ivan-mogilko
Copy link
Contributor

Guess I'll close this then, this fix will become a part of 3.5.1 release, hopefully soon enough.

@michael-ts
Copy link

@HunterZ Sorry, this may be a stupid question, but how exactly do you play KQ3 "under" a specific AGS version? The download appears to be self contained and just runs. Is there some way to load it into AGS and play it that way, in some kind of debug mode? I tried, but there's no AGF file in the distributed runtime.

@ericoporto
Copy link
Member

If you run the AGS binary and pass the path of the game it should run it will run, be it an .ags or .exe, it should figure it out. If you are on Windows it may be simpler to just copy paste acwin.exe (and the SDL dll in newer versions) on the game dir and double click acwin.

@ivan-mogilko
Copy link
Contributor

ivan-mogilko commented Oct 1, 2022

@michael-ts it sounds like you tried to load the game into the editor? You need to use the engine executable (this is what @ericoporto refers to). The Windows engine is called acwin.exe and is distributed with the editor too (it may be found in the editor's program folder). For other platforms you need to download respective distributives from our releases on github, or build it yourself from the sources.

@michael-ts
Copy link

@ericoporto @ivan-mogilko Thanks, that worked! I guess that was a bit of a disappointment, I was hoping running it under AGS would give me something like debugging output or better insight into the underlying game. (I have been trying to identify what all the GlobalInt variables are for, but so far have mostly only figured out those related to timekeeping)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
context: bw-compat supporting deprecated runtime functionality, importing and converting game data type: bug unexpected/erroneous behavior in the existing functionality
Projects
None yet
Development

No branches or pull requests

4 participants