Friday, June 22, 2012

Controllers

So if you'd been reading my Twitter in the last week, you probably saw me talking about getting an Xbox 360 controller to use as a gamepad on my computer.  Microsoft has two options for exactly this: a wired USB controller, and a wireless one that comes with a receiver.  The beauty of it all is that these are full-fledged Xbox 360 controllers.  Microsoft controller + Microsoft OS = should work, right?  Well, right.

I did indeed order the wireless controller, as well as the play and charge pack that comes with a cable and rechargeable battery.  Rather than ordering from Microsoft, I ordered from Amazon and saved some money.  Go me.  The controller arrived yesterday.

Initially I had an issue, being that none of the games I had that preferred Xinput controllers would actually see it.  I googled around for a while looking for solutions, but it wasn't until about an hour ago I happened on a forum post that said that the Xbox 360 Controller Emulator would conflict with it and prevent the controller from being properly recognized.  Well, a while before the whole OS reinstall thing, I had indeed used Xbox 360 Controller Emulator to make Xinput games recognize my DirectInput-only PS2 controller as an Xinput controller.  So I went through and deleted the x360ce Xinput DLL files and restored the backups of the originals that I made should I ever need them (yay forethought).  Now I can use it properly in Beat Hazard, The Maw, and anything else I should ever own that looks for an Xinput controller.

If you have an older DirectInput controller and don't want to buy an Xinput one, I do recommend Xbox 360 Controller Emulator.  Download link at a Google search result near you.  You'll need a copy of x360ce.exe in the directory of every game you want to configure, and given the above story I do recommend making backups of the original Xinput DLLs from the game, if any, just in case.  It's pretty simple how it works.  You configure your controller so everything maps correctly, then it generates modified Xinput DLLs that wrap the relevant DirectInput calls inside each Xinput call.  So the game calls an Xinput function, ends up with results adapted from DirectInput, and everything works.

Anyway.

One of the nice things about getting the wireless receiver is that now if I need another controller (for some local multiplayer action!) I can just go buy an Xbox 360 controller from wherever and it'll work.  The reverse is also true, should I ever get an Xbox 360, I'll have another controller for it.

The weird thing I noticed is that the Xbox guide button doesn't register as an actual input.  If I plug in the receiver for one of my GH5 guitar controllers, the PS button registers as an input...

Also, there's no way to turn the wireless controller off, short of disconnecting and reconnecting the battery.  Given that the software that comes with it will pop up an indicator showing the battery level if you press the guide button, it should be relatively easy to make it turn the controller off if it's held, just like on the Xbox 360.

Another issue is that JoyToKey won't work with it.  I searched around and grabbed the last free version of Xpadder (because fuck paying for a tool to do this), which fits the bill and works with my PS2 controllers as well.

I know there are alternate drivers that support things like dead zones on the analog sticks and whatnot, I'll have to look into those.  For now, everything's working and I'm happy.

Edit (2014-02-10): So apparently JoyToKey will work with a 360 controller.  I don't know what I was doing before, but it works, with the caveat of not being able to use both triggers simultaneously since they're two halves of the same analog axis.  I still recommend using Xpadder, as it will properly split that axis and let you use both triggers simultaneously, and it's far more intuitive to set up.

Here's a link to the test config I made for the 360 controller in JoyToKey.  To use it, drop it in your JoyToKey directory, run JoyToKey and select it, then run Notepad and press things on the controller to see what's what.

2 comments:

  1. "Another issue is that JoyToKey won't work with it. I searched around and grabbed the last free version of Xpadder (because fuck paying for a tool to do this), which fits the bill and works with my PS2 controllers as well."

    Do you mean JoytoKey won't work at all or it will conflict with the x360 pad? Did xpadder give you an issue? Thanks in advance.

    ReplyDelete
  2. Hmm, I dunno what I was doing when I wrote this, but I just set up my 360 controller in JoyToKey with very little issue. The only notable thing is that you won;t be able to press both triggers at the same time using JoyToKey, whereas in Xpadder that works just fine.

    I've edited a link to the test config I made into the post.

    ReplyDelete

I moderate comments because when Blogger originally implemented a spam filter it wouldn't work without comment moderation enabled. So if your comment doesn't show up right away, that would be why.