PDA

View Full Version : Thief 3 1.1 Vista - Strange movement



ice745
13th Dec 2007, 09:13
I have read some posts about this issue already, but none of them offer a working solution.

The problem is that Garrett always decides he wants to creep, without my permission. Sometimes he'll run, but only in short bursts. And on more rare occasions, he will decide that he will not jump, nor will he climb objects. He becomes completely unresponsive to the space bar (or any key I assign to jump). When he picks a lock, I have to tell him how to do it by keyboard only, the mouse won't work for that.

Maybe Garrett is just getting too old to move quickly, climb objects and jump.

Vista 32-bit home premium
Abit IP35 mobo
E6750 Core 2 Duo 2.66 ghz core 1.33 ghz FSB (stock clock)
2 GB Corsair RAM (TWIN2X2048-6400) 5-5-5-12 1.9v
eVGA GeForce 8600 GTS 512 mb (stock clock, latest release drivers)
Onboard Realtek ALC888 sound (latest drivers)
Microsoft Wireless Keyboard + Mouse Combo (of some sort, old) in PS/2

Komag
13th Dec 2007, 17:14
If I HAD to guess I would say it was that "old" wireless keyboard/mouse.

ice745
14th Dec 2007, 02:10
True, it's a common problem with certain applications with poor input programming.

It's the Wireless Desktop Elite or something like that; but more importantly it uses the IntelliType driver. The Keyboard sends some extra information - maybe about battery level, signal strength or something else - in custom scancodes. On some linux kernels it produces an error that an unrecognized scancode has been read. In one emulator, I forgot which, the unknown scancode messes up the key assignment dialog by filling in "#255" as the button pressed; even when no buttons are pressed. In Thief Deadly Shadows, it makes Garrett creep all the time.

The emulator's problem is understandable, because arguably the author has made his app compatible with new buttons in the future. The keyboard sending the scancode out at a seemingly random interval would obviously confuse it. Linux could be taught to ignore that scancode.

However, Thief Deadly Shadows is just an example of poor input programming. Being as the arbitrary scancode is not assigned to any action, the game should simply ignore it. However, since the scancode does have an adverse affect on character movement in the game, it shows that the game is processing the message incorrectly. Installing the Microsoft IntelliType software handles the scancode at the kernel level, thus surpressing the notification to applications. This "fixes" the problem with Thief Deadly Shadows. Although this "solution" is similar to being told not to bend your elbow if that action causes pain; it does not address the underlying issue.

I believe Eidos doesn't support this game anymore, though. So this thread is likely in vein.

I guess anyone who does come here with the same problem can try to get the driver for their keyboard to mask the issue. It will effectively fix the problem. Having the extra software running may be an issue for certain people; however, I don't believe IntelliType is too much of a resource hog. It does have the benefit of adding some functionality to the keyboard; such as the programmability of the special function buttons.

The bottom line is that some nonstandard keyboards may send messages in custom defined scancodes. These keyboards should have drivers, or other software, used to intercept and interpret these scancodes at the kernel level. While these scancodes are nonstandard, an application is easily programmed to ignore the messages that it does not understand. By default the window procedure handles only messages it can interpret, and "discards" messages that it does not. This is obviously not the case with Thief Deadly Shadows.