login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
I have found there are 4 different ways I it seems to happen for me.
Anyway, my guess is there possibly 3 reasons why this is happening.
So my overall opinion is it's probably due to "weaknesses" in the AOHD code/poor code.
Update: just found a bug report on winehq: https://bugs.winehq.org/show_bug.cgi?id=30814
The game is using the GetKeyboardState() function to read the arrow keys (and other keys), and is not checking the result correctly. The MSDN documentation for the function only defines the low bit (0x01, meaning that the key is "toggled" à la Caps Lock) and the high bit (0x80, meaning that the key is pressed). Age of Empires (both 1 and 2) check if the key is pressed by checking if the result is > 1. This works most of the time, as it does not depend on the low bit. However, the undefined "middle" bits are occasionally used by windows/wine internals, and are not guaranteed to be zero. The game should check only the high bit (by ANDing it with 0x80).
I've patched version 5.0 to do this for the arrow keys (replace 80 3C 01 01 at offset 0x4525D4 with 80 24 01 80 and 0F 97 C0 at 0x4525DB with 0F 95 C0 in AoK HD.exe). Note that this doesn't fix the issue across the board — the Tech Tree screen also uses GetKeyboardState() and checks the result in the same way. It'll also need redoing for each version until it's fixed properly by the developers.
On a different note though: have you tried contacting the official devs to fix that permanently?
Since there does not seem to be a way to disable hotkeys, I overwrote them with some key that is harder to reach. I went to the hotkey settings and changed the scrolling hotkeys all to F5 (which sets 3 of them to ??? essentially disabling them).
I really hope this workaround works out for you as well. It certainly makes the game playable now.
There is a workaround, found by the poster of this thread:
https://steamcommunity.com/app/221380/discussions/2/1736588252407754569/
Many thanks to Zakku for experimenting with this!
Also many thanks to Sulix for finding a very likely permanent solution! Hopefully, the devs will implement it.
Many thanks to Sulix for discovering the root cause! I wrote a more or less general patch which should work with most versions of the game. You can find it here[github.com]. Please let me know if you have any issues so I can improve it to support more versions until it's fixed by the devs.
As this is a process you will have to repeat after every update of the game, this script can help do things a bit less tedious:
Open a terminal and paste this after game updates: