View Full Version : 2.50.1 ZC/ZQ Freezes when Running for Long Duration / Refuses to Accept Input on Win 7

06-04-2015, 12:37 AM
I'm not sure how to properly document this...

When running ZC for prolonged periods, with no activity, and no screensaver, ZC will hang. No input passed, and must force-close.

I've also found that ZQuest will stop accepting keyboard input if I shift focus out of it, and back to it, seemingly whenever it pleases.

Is there anything you would like me to do, to try to document the conditions that cause this; or is it a known problem?

06-04-2015, 01:36 AM
It's a known issue. Since it affects both ZC and ZQ my money is on allegro but I can't be sure.

The main culprit in the past has been the matrix screensaver, which should be disabled by default now (and may even be fixed--can't remember).

Question: Were any GUIs open, or was it just idling on a game screen? I believe it has something to do with the Dialogs.

06-04-2015, 03:25 AM
ZC was idling on the save slot selection screen; ZQ, on a dialogue. Post-compile script assignment, or something like that. Probably something with Yes/No several times too. I notice the problem when it idles on dialogue screens, because I'm used to tying k, then c for OK and recompile.

Another thing, is that when alt+tabbing out of focus, and then back, ZC/ZQ act as if you are holding down an arrow key, until you press any key (insert stale joke). The dialogue selector goes mad, moving around in a rapid cycle. This also affects the file selection dialogue in ZC, when opening a quest.

06-04-2015, 12:44 PM
Allegro's keyboard buffer is used from multiple threads, but it's not thread-safe. It has a lock variable, but it's an ordinary int. If that gets messed up, the keyboard is permanently locked, and the GUI stops responding to keyboard input. The buffer isn't accessible outside of Allegro itself, so it can't be corrected when it happens. I've made efforts in the past to reduce the likelihood of it happening, but it's not something we can entirely fix.
I can have it clear the buffer when switching in or out, which should fix the issue with it thinking keys are being held, but that also significantly increases the odds that the keyboard will stop working entirely.