The purpose of this post/thread is to describe how to use a USB gaming controller on the Nexus S, which is now possible thanks to the work of fellow XDA member sztupy. Before proceeding, I highly recommend that you read his Galaxy S thread, especially the first few posts (http://forum.xda-developers.com/show....php?t=1450298).
First, some demonstrations:
Using USB Host Controller app and Super Mario 64
Batman: Arkham City
DISCLAIMER: I take no responsibility for any damage you do to your phone.
1.) FLASH KERNEL AND DOWNLOAD APP
First things first, you will need ICS and to flash a kernel that has USB OTG support in it. At the time of this posting, some kernels with USB OTG are:
-steve.garon’s kernel (http://forum.xda-developers.com/show....php?t=1427352)
-mathkid95’s Matr1x kernel (http://forum.xda-developers.com/show....php?t=1361477)
-Ezekeel's GLaDoS kernel (http://forum.xda-developers.com/show....php?t=1336529)
If you do not know how to flash a kernel, please Google it. You will also need to download sztupy’s app “USB Host Controller” (https://market.android.com/details?i...hostcontroller).
2.) ACQUIRE USB CONTROLLER
Next, you will need a supported USB controller. The following should work:
-wired Xbox 360 controller
-Logitech DualAction controller
-Logitech WingMan RumblePad
-wireless Xbox 360 controller WITH wireless receiver
-wired Sony Playstation 3 controller (not yet tested)
...probably many others
3.) OTG SET UP
Thirdly, you’ll need a working USB OTG set up. Sztupy’s thread shows you a few ways of accomplishing this. Below is a (crappy) diagram of MY current working set up.
I think this is the best set up because you don't have to buy any fancy OTG cables or USB hubs. But that's just my opinion.
In terms of the order for connecting things, I find it works best if you connect the phone LAST.
4.) FINAL STEPS
Once everything is connected, open up the “USB Host Controller” app, select the “Settings” pane, and set the Operation Mode to “Auto-host” (if you are using a set up that involves an OTG connector/cable, then you'll likely need to select OTG mode instead). If everything went right, the app will close automatically and you should be able to navigate your phone with the controller. You are now ready to game!
Just a note with the 360 controller. The middle button will always flash on and off, and will not stay lit on one quarter of the circle as on an actual Xbox. AFAIK there's no way to fix this (unless you use tape heh).