if you use this
http://www.jayceooi.com/2009/01/19/download-xbox-360-controller-emulator-for-pc-games/and input based on gamepad should work
some people are using ppjoy+and/or this app
here is my .ini
[Options]
UseInitBeep=1 #use 0 to 1; default 1; beep on init
Log=0
[PAD1]
Index=0 #controller index in game controllers list; 0 is first; -1 to ignore this pad
Left Analog X=1 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Left Analog Y=-2 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Right Analog X=3 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Right Analog Y=-6 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Left Analog X Linear=0 #-100 to +100 raise this number to increase sensitivity near center
Left Analog Y Linear=0 #-100 to +100 raise this number to increase sensitivity near center
Right Analog X Linear=0 #-100 to +100 raise this number to increase sensitivity near center
Right Analog Y Linear=0 #-100 to +100 raise this number to increase sensitivity near center
Left Analog X+ Button=0 #button id; 0 to disable
Left Analog X- Button=0 #button id; 0 to disable
Left Analog Y+ Button=0 #button id; 0 to disable
Left Analog Y- Button=0 #button id; 0 to disable
Right Analog X+ Button=0 #button id; 0 to disable
Right Analog X- Button=0 #button id; 0 to disable
Right Analog Y+ Button=0 #button id; 0 to disable
Right Analog Y- Button=0 #button id; 0 to disable
D-pad POV=1 #POV index; 0 to disable
D-pad Up=0 #button id; 0 to disable
D-pad Down=0 #button id; 0 to disable
D-pad Left=0 #button id; 0 to disable
D-pad Right=0 #button id; 0 to disable
A=2 #button id; 0 to disable
B=3 #button id; 0 to disable
X=1 #button id; 0 to disable
Y=4 #button id; 0 to disable
Left Shoulder=0 #button id; 0 to disable
Right Shoulder=0 #button id; 0 to disable
Back=0 #button id; 0 to disable
Start=7 #button id; 0 to disable
Left Thumb=0 #button id; 0 to disable
Right Thumb=0 #button id; 0 to disable
TriggerDeadzone=3 #use 0 to 255; default 3; add deadzone to trigger
Left Trigger=5 #button id; precede with 'a' for an axis; 's' for a slider;
Right Trigger=6 #button id; precede with 'a' for an axis; 's' for a slider;
UseForceFeedback=0 #use 0 to 1; default 0
ForceLargeGain=10000 #use 0 to 10000; default 10000; effect intensity
ForceLargePeriod=120000 #use 0 to 200000; default 120000; effect frequency; wheel only
ForceLargeFadeTime=0 #use 0 to 100; default 10
ForceLargeFadeIn=0 #use 0 to 1; default 1
ForceLargeFadeOut=0 #use 0 to 1; default 1
ForceLargeStartMag=0 #use 0 to 10000; default 2000; effect will begin with this value
ForceSmallGain=10000 #use 0 to 10000; default 10000; effect intensity
ForceSmallPeriod=30000 #use 0 to 200000; default 30000; effect frequency; wheel only
ForceSmallFadeTime=0 #use 0 to 100 default 10
ForceSmallFadeIn=0 #use 0 to 1; default 1
ForceSmallFadeOut=0 #use 0 to 1; default 1
ForceSmallStartMag=0 #use 0 to 10000; default 2000; effect will begin with this value
WheelInertiaGain=2500 #use 0 to 10000; default 2500; effect intensity; wheel only
WheelSpringGain=5000 #use 0 to 10000; default 5000; effect intensity; wheel only
SteeringWheel=0 #use 0 to 1; enable for all wheel effects; trun this on fixes some vibration probems
[PAD2]
Index=1 #controller index in game controllers list; 0 is first; -1 to ignore this pad
Left Analog X=1 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Left Analog Y=-2 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Right Analog X=3 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Right Analog Y=-6 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Left Analog X Linear=0 #-100 to +100 raise this number to increase sensitivity near center
Left Analog Y Linear=0 #-100 to +100 raise this number to increase sensitivity near center
Right Analog X Linear=0 #-100 to +100 raise this number to increase sensitivity near center
Right Analog Y Linear=0 #-100 to +100 raise this number to increase sensitivity near center
Left Analog X+ Button=0 #button id; 0 to disable
Left Analog X- Button=0 #button id; 0 to disable
Left Analog Y+ Button=0 #button id; 0 to disable
Left Analog Y- Button=0 #button id; 0 to disable
Right Analog X+ Button=0 #button id; 0 to disable
Right Analog X- Button=0 #button id; 0 to disable
Right Analog Y+ Button=0 #button id; 0 to disable
Right Analog Y- Button=0 #button id; 0 to disable
D-pad POV=1 #POV index; 0 to disable
D-pad Up=0 #button id; 0 to disable
D-pad Down=0 #button id; 0 to disable
D-pad Left=0 #button id; 0 to disable
D-pad Right=0 #button id; 0 to disable
A=2 #button id; 0 to disable
B=3 #button id; 0 to disable
X=1 #button id; 0 to disable
Y=4 #button id; 0 to disable
Left Shoulder=0 #button id; 0 to disable
Right Shoulder=0 #button id; 0 to disable
Back=0 #button id; 0 to disable
Start=7 #button id; 0 to disable
Left Thumb=0 #button id; 0 to disable
Right Thumb=0 #button id; 0 to disable
TriggerDeadzone=3 #use 0 to 255; default 3; add deadzone to trigger
Left Trigger=5 #button id; precede with 'a' for an axis; 's' for a slider;
Right Trigger=6 #button id; precede with 'a' for an axis; 's' for a slider;
UseForceFeedback=0 #use 0 to 1; default 0
ForceLargeGain=10000 #use 0 to 10000; default 10000; effect intensity
ForceLargePeriod=120000 #use 0 to 200000; default 120000; effect frequency; wheel only
ForceLargeFadeTime=0 #use 0 to 100; default 10
ForceLargeFadeIn=0 #use 0 to 1; default 1
ForceLargeFadeOut=0 #use 0 to 1; default 1
ForceLargeStartMag=0 #use 0 to 10000; default 2000; effect will begin with this value
ForceSmallGain=10000 #use 0 to 10000; default 10000; effect intensity
ForceSmallPeriod=30000 #use 0 to 200000; default 30000; effect frequency; wheel only
ForceSmallFadeTime=0 #use 0 to 100 default 10
ForceSmallFadeIn=0 #use 0 to 1; default 1
ForceSmallFadeOut=0 #use 0 to 1; default 1
ForceSmallStartMag=0 #use 0 to 10000; default 2000; effect will begin with this value
WheelInertiaGain=2500 #use 0 to 10000; default 2500; effect intensity; wheel only
WheelSpringGain=5000 #use 0 to 10000; default 5000; effect intensity; wheel only
SteeringWheel=0 #use 0 to 1; enable for all wheel effects; trun this on fixes some vibration probems
(im using 2 of the 4 U360s, and set those to "joy8wayeasy" mode, its working ok at the moment... but i still have yet tweak the button order to my liking...i would like the stock SF4 button profile settings to match the arcade button layout for LP-MP-HP/LK-MK-HK/start on a neogeo 7 btn layout)
and basically you just use that controller emulator app's DLL and put it in the SF4 folder as xinputXXXX.dll (i called mine DINPUT9_1_0.DLL and DINPUT1_3.DLL, im sure only one is needed but i didnt check which, doesnt really matter)
you use that XInputTest.exe in there to check your mapping against a GUI drawing of a xb360 controller
it is not so bad. also it helps to put the No CD patched SF4Launcher.exe in there.
there will have to be some way to automate hitting 'ENTER' as well. i.e. autohotkey script. after its launched etc...
so far works nicely on a cab i like when ppl jump in and start a 2P game on me via Xbox Live...pretty wild playing ppl over the internet while standing in front of a real cab with a big crt and nice arcade buttons/sticks.
i was expecting/hoping for a bit more cab friendly game...kind of disappointed in that regard. but it can be made to work in a cab-friendly-2-player manner as long as u have some way to generate gamepad input (ie gp encode, gp, ppjoy, etc).