-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
02.11.2011 06:05, Vitaliy Margolen wrote:
If you really want it to get in just do it via DI. Use old patches and projects like x360ce for ideas, code, and documentation. Too bad x360ce is in c#.
x360ce XInput1_3.dll implementation is written in pure C (well, polluted with things like C++ comments and variables declarations in the middle of control block, but anyways). The only part written in C# is GUI which has one purpose: provide the user with a way to edit x360ce.ini file in a human-friendly way.
XInput1_3.dll from x360ce in generally works fine with Wine if you supply it with a correct config for your gamepad. It allows one to use gamepads in some XInput aware programs, I had tested it with success in LIMBO, Rage and Braid. OTOH there are apps that fail to detect XInput devices with it, most likely due to the detection scheme MS recommends to use which involve devices enumeration via WMI. On Windows x360ce uses "hooks" to hijack some DI and WMI procs and support an APP with the data it wants to get in order to detect the presence of Xbox360 gamepad controller. IMO this technique is "a bad way to do a simple thing" and apps that use it are poorly designed (it's not their fault, it's MS who introduced this mess), but in case there would be built-in XInput implementation in Wine - it should be able to handle correctly such cases. I had already mentioned it earlier in one of the messages I sent to list.
As for "just doing via DI": despite I like the concept of implementing XI over DI8 (it would give immediate benefit to the Wine users on all platforms where joysticks are supported via DI), I'm not sure it is a good idea to quickly head on to writing code if the design concepts used are not acceptable from the point of Wine devteam. Coding "just for fun" was fun when I was fifteen and had a lot of free spare time. It is still fun nowdays, but the amount of time available to spend doing JFF coding became pretty short/limited. Because of that I had decided to write a message to a wine-devel in order to discuss code design concepts that are acceptable for XInput implementation to be included in Wine codebase prior to launching Eclipse and starting to code.
Implementing XInput "properly" via X11 is impossible. X11 does not support force-feedback joysticks. One can wait for another 5 years for broken interface. And another 5 to get it fixed.
Exactly. I totally agree with it and had already mentioned in one of my prior messages that it would be handy to have somewhat working XInput implementation in Wine while waiting for X11 to be fixed which isn't guaranteed to happen at all. Knowing that we might face something like Wayland to become popular and widely installed display server in about 5 years also doesn't add up to the "use X11" concept.
- -- Best regards, Alexey Loukianov mailto:mooroon2@mail.ru System Engineer, Mob.:+7(926)218-1320 *nix Specialist