briankendall / devreorder

A utility for reordering and hiding DirectInput controllers
334 stars 32 forks source link

Tried system wide approach, but still not having any effect? #32

Closed anursetiawan closed 4 years ago

anursetiawan commented 4 years ago

Hi there. I apologize in advance if I'm not clear enough, I'm not proficient in English. Or if it's not the correct place to ask.

I have games that should support Xbox 360 controller, and I'm using x360ce to emulate my controller (detected in joy.cpl and DeviceLister as "PC/PS3/Android Gamepad", but no Windows game supports it except emulator). It usually works without any problem nor any tinkering.

The problem is, with this particular game it only reads the first listed controller, which it doesn't support. I tried to use devreorder on the game directory, but it doesn't have any effect. Next, the system-wide approach, I followed the instruction as best as I could.

  1. Take ownership of dinput8.dll on both system32 and SysWOW64, then rename each of them to dinput8org.dll.
  2. My system is 64 bit, so I copied devreorder's version of x64 dinput8.dll to system32, and the x86 one to SysWOW64.
  3. Put the devreorder.ini to ProgramData\devreorder, with content as following: notworking
  4. Reboot.

The problem is, it still doesn't have any effect, my actual controller is still detected in joy.cpl.

To confirm it I started Steam's Big Picture, and true enough, Steam reads each controller input twice (from "PC/PS3/Android Gamepad" and "Controller (Xbox360 For Windows)", since Steam in Big Picture mode supports both).

Did I do something wrong on applying the system-wide configuration? What do I do to hide my actual controller in joy.cpl and only leaves the virtual controller? Any help is appreciated, thanks!

briankendall commented 4 years ago

Your configuration looks correct. Although I'll mention that it's not necessary to use both the [hidden] and [visible] sections at the same time. If anything is listed under [visible] then it will automatically hide all of the controllers not listed there.

I'm wondering if it'll work better if you use a UUID instead of the controller name? Try changing your configuration in C:\ProgramData\devreorder\devreorder.ini to this:

[hidden]
{f2751300-cb81-11ea-8001-444553540000}

[visible]
; keep this empty

(And double check that I got the UUID correct.)

anursetiawan commented 4 years ago

That works! Without needing to reboot too, awesome. Thank you very much.