Ever since I got rid of my Galaxy Tab 7.0 Plus, I’ve been without an Android device that’s fully capable of using standard game controllers. Stock Gingerbread for my S II didn’t have the drivers, and the ROM I’ve been using since I upgraded to Jelly Bean had a bug that made the system UI crash when one was connected via USB. That latter issue has now been addressed by the ROM developer, and I promptly went to work modifying a controller for my phone.
I have a wired Xbox 360 Controller that I’ve been using occasionally for PC games, and I wanted to make that more S II-friendly. After disassembling it I found that the USB cable was very easy to get to, so I decided to shorten it substantially by cutting it and re-soldering it to the internals of the controller. That game me a controller with a short USB cable, meaning that if I ever want to use it for PC games again, then all I have to do is attach an extension cable. I also glued on a tripod screw, allowing me to use my DIY tripod adapter for the S II + case on the controller. If I had the parts I would have added a mini-USB port to the controller instead, and made a USB host cable with a miniUSB connector in the other end, but this will do.
With that done, all that’s needed is the tripod adapter and a USB host cable to turn the controller into a handheld gaming device. Using the method from my Android game controller guide I can map the buttons to the touch screen, allowing it to work with any game with on-screen controls, as well as of course games that actually support controllers.
So why would you want to do this when you can buy dedicated Android game controllers? Well, first of all, I think the Xbox 360 controller is the best game controller out there, and it easily beats those “specialized” game controllers. Second, with a price of around $20 in the US, a wired Xbox controller is one of the cheaper options you can go for, assuming you have the various parts needed to make the conversion around the house. Third, this uses USB, meaning you don’t have to worry about charging the controller. While it does use power from the device to power the controller, it’s not using a lot, and you don’t have to have Bluetooth on in the process. Finally, an Xbox 360 controller is actually more compatible with games than many made-for-Android controllers, since it’s supported by USB /BT Joystick Center (see the game controller link above), and you can use it for your PC as well.
Of course you could go with something in between this and a made-for-android solution, by getting a GameKlip and a PS3 sixaxis controller. Still, considering the cost, I think this solution is a valid alternative to other methods.