PS3 controller + Xinput problem

Post Reply
bigou38
Posts: 5
Joined: 06 Dec 2009, 17:09

PS3 controller + Xinput problem

Post by bigou38 »

hello,

I'm french and sorry for my bad English
I use my PS3 controller (drivers ds3drv_dx_1.02 and ForceFeedbackDriver) under windows 7 32bit with Xbox360 controller (Xinput).
everything worked very well, even vibrations in games where the controller 360 is recognized natively. (Crysis, batman etc. ..).
But to play ti "call of duty modern warfare 2", I decided to buy Xpadder (great program).
I set all my keys Ps3 and everything works well, but for the vibrations I need to use XInput (xbox360 emulator), but I have a problem with my DualShock3 and Xinput, when I put in xinput1_3.dll and x360ce.ini Files in Xpadder folder , Xpadder message : xbox 360 compatible: yes.
but I have only 4 buttons that work (vibration = ok)
if I remove the file xinput1_3.dll directory, all my buttons work under Xpadder.

I can not find solutions ....
Can you help me

Thanks in advance

P.S : if the question has been asked, I apologize.

SGTCableDog
Xpadder Xpert + Moderator
Posts: 1118
Joined: 27 Aug 2009, 03:35
Location: Minnesota, USA
Contact:

Re: PS3 controller + Xinput problem

Post by SGTCableDog »

This is the first time I have heard of XIput drivers for the DualShock3. :shock: Give me a couple days to look into this.

mnl1121
Xpadder Xpert
Posts: 391
Joined: 26 Aug 2009, 22:27
Location: New Jersey
Contact:

Re: PS3 controller + Xinput problem

Post by mnl1121 »

This is the first i've heard of this too. I don't know what we can do as it sounds like its a driver issue. Good luck Cable in looking into this.

bigou38
Posts: 5
Joined: 06 Dec 2009, 17:09

Re: PS3 controller + Xinput problem

Post by bigou38 »

Hi !

Here is my problem a little better explained, hoping that this is understandable:)

Thanks ind advance

P.S : they are not Xinput drivers, these are drivers for DualShock3 with vibration, but I use "x360ce vibmod 3.1.4.0, emulator for
all controllers that are recognized as an xbox360 controller, there are 3 files to operate,
-XInputTest.exe (just ofr test buttons)
- Xinput1_3.dll

- X360ce.ini (my config for emulate xbox360 with my dualshock3):
[Options]
UseInitBeep=1 #use 0 to 1; default 1; beep on init
Log=0 #use 0 to 1; creates a log file in folder 'x360ce logs'
FakeAPI=0 #use API patching

[PAD1]
Index=0 #controller index in system game controllers list; 0 is first; -1 to ignore this pad
Native=0 #experimental native mode, calls system xinput1_3.dll to support xinput compatible controller together with emulated
VID=0x0 #controller VID
PID=0x0 #controller PID
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+ 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=5 #button id; 0 to disable
Right Shoulder=6 #button id; 0 to disable
Back=9 #button id; 0 to disable
Start=10 #button id; 0 to disable
Left Thumb=11 #button id; 0 to disable
Right Thumb=12 #button id; 0 to disable
TriggerDeadzone=5 #use 0 to 255; default 0; add deadzone to trigger
Left Trigger=a-4 #button id; precede with 'a' for an axis; 's' for a slider; 'x' for a half range axis; 'h' for half slider; use '-' to invert ie. x-2;
Right Trigger=a-5 #button id; precede with 'a' for an axis; 's' for a slider; 'x' for a half range axis; 'h' for half slider; use '-' to invert ie. x-2;
UseForceFeedback=1 #use 0 to 1; default 0
SwapMotor=1 #use 0 to 1; default 0
ForcePercent=100 #use 0 to 100; default 100
ControllerType=1 #GAMEPAD 1; WHEEL 2; STICK 3; FLIGHT_SICK 4; DANCE_PAD 5; GUITAR 6; DRUM_KIT 8; //WILDS
AxisToDPad=0 #Use Axis to control DPad (0 disabled, 1 enabled) //WILDS
AxisToDPadDeadZone=256 #Dead zone for Axis //WILDS
AxisToDPadOffset=0 # //WILDS
POVXReverse=0 #Reverse POV Up/Down
POVYReverse=0 #Reverse POV Left/Right
Xpadder :
Image

Xinput Test :
Image

spen25
Posts: 35
Joined: 25 Dec 2009, 06:09
Contact:

Re: PS3 controller + Xinput problem

Post by spen25 »

I was trying out Xinput and the 360emu on my Saitek Cyborg due to trying to get those triggers on different axis. I had the same results as you when it came to xpadder. I just gave up and rehooked up my 360 troller.

bigou38
Posts: 5
Joined: 06 Dec 2009, 17:09

Re: PS3 controller + Xinput problem

Post by bigou38 »

I want it to work because I like the vibrations, and if I do not Xinput and I setting a button with the vibration, Xpadder malfunction, I have to kill the process to close it

mnl1121
Xpadder Xpert
Posts: 391
Joined: 26 Aug 2009, 22:27
Location: New Jersey
Contact:

Re: PS3 controller + Xinput problem

Post by mnl1121 »

Seeing as its the files that are causing the problem I doubt if at all we can help you.

bigou38
Posts: 5
Joined: 06 Dec 2009, 17:09

Re: PS3 controller + Xinput problem

Post by bigou38 »

I enabled the logs to Xinput emulator, here's the log with Xinput Test and Xpadder (almost the same)

Xpadder :
21:38:03.11148424:: x360ce started by process Xpadder.exe PID 3040
21:38:03.11148611:: Initializing Gamepad 1
21:38:03.11148611:: Configured devices: 1, Enumerated: 0
21:38:03.11148611:: Enumerating device 1
21:38:03.11148689:: Device "DUALSHOCK3 Controller HID Minidriver (USB) Beta" with Index=0 initialized
21:38:03.11148689:: Configured devices: 1, Enumerated: 1
21:38:03.11148689:: Enumeration finished
21:38:03.11148689:: Device has 5 axis
21:38:03.11148689:: XInputGetCapabilities send type 1
21:38:22.11167503:: DLL_PROCESS_DETACH
Xinput Test :
21:31:24.10749326:: x360ce started by process XInputTest.exe PID 5252
21:31:24.10749326:: Initializing Gamepad 1
21:31:24.10749326:: Configured devices: 1, Enumerated: 0
21:31:24.10749342:: Enumerating device 1
21:31:24.10749420:: Device "DUALSHOCK3 Controller HID Minidriver (USB) Beta" with Index=0 initialized
21:31:24.10749420:: Configured devices: 1, Enumerated: 1
21:31:24.10749420:: Enumeration finished
21:31:24.10749420:: Device has 5 axis
21:31:31.10756502:: DLL_PROCESS_DETACH

SGTCableDog
Xpadder Xpert + Moderator
Posts: 1118
Joined: 27 Aug 2009, 03:35
Location: Minnesota, USA
Contact:

Re: PS3 controller + Xinput problem

Post by SGTCableDog »

First, thank you for pointing out these drivers and software. It seems that the default configs for the driver and XInput emulator needs to be changed.

We have a couple of things here. First is the ds3drv_dx driver for the DualShock3 (site is Japanese- I have no idea what it says). There are three parts to the driver- ds3drv_dx_1.03.1.14.zip driver, english settings tool, and force feed back driver and its tray tool. The force feedback tray tool is in Japanese and I have no clue in what it does or if it is neccesary. This seems like a better driver than what I've used in the past and it has an option for bluetooth but I haven't tried it yet. I created configuration for the Driver setting tool.

Code: Select all

[HEADER]
Title=Xpadder
IniFileVersion=1.0
[SETTING]
Interval=8000
DeviceType=1
UseHatSwitch=1
HatSwitchMode=0
UseSlider1=14
SliderBaseCenter1=0
UseSlider2=13
SliderBaseCenter2=0
[DEADZONE]
System=0
L2=0
R2=0
[RAPID FIRE]
EnableRapidFire=0
FunctionButtonMask=65536
SpeedSelector=1
Speed1=15
Speed2=30
Speed3=10
Speed4=8
[AXIS MAP]
X=4
Y=3
Z=0
RotateX=6
RotateY=5
RotateZ=0
[AXIS INVERTE]
X=0
Y=0
Z=0
RotateX=0
RotateY=0
RotateZ=0
[CONVERTE OUT]
X=0
Y=0
Z=0
RotateX=0
RotateY=0
RotateZ=0
[BUTTON MAP]
00=7
01=9
02=10
03=8
04=0
05=0
06=0
07=0
08=0
09=0
10=5
11=6
12=4
13=2
14=1
15=3
16=11
17=0
18=0
[AXIS MAP2]
UseAxisMap2=0
DigitalY=0
DigitalX=0
AnalogLY=0
AnalogLX=0
AnalogRY=0
AnalogRX=0
TC=0
SC=0
SixaxisX=0
SixaxisY=0
SixaxisZ=0
[CONVERTE IN]
DigitalY=0
DigitalX=0
AnalogLY=0
AnalogLX=0
AnalogRY=0
AnalogRX=0
TC=0
SC=0
SixaxisX=0
SixaxisY=0
SixaxisZ=0
Save this as xpadder.ini in the same folder as the Driver setting tool, open the tool and choose File>inport (sic-it is spelled wrong in the program). Also make sure the "Enable advanced mode" box is checked.

Next is the x360ce vibmod program. It is a XInput emulator used for DirectX controllers to work with XInput games. This is where your problem lies. The default binds are something crazy. This is what I made.

Code: Select all

Native=0                  #experimental native mode, calls system xinput1_3.dll to support xinput compatible controller together with emulated
VID=0x0                   #controller VID
PID=0x0                   #controller PID
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=4          #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Right Analog Y=-5         #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
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=1                       #button id; 0 to disable
B=2                       #button id; 0 to disable
X=3                       #button id; 0 to disable
Y=4                       #button id; 0 to disable
Left Shoulder=5           #button id; 0 to disable
Right Shoulder=6          #button id; 0 to disable
Back=7                    #button id; 0 to disable
Start=8                  #button id; 0 to disable
Left Thumb=9             #button id; 0 to disable
Right Thumb=10            #button id; 0 to disable
TriggerDeadzone=0         #use 0 to 255; default 0; add deadzone to trigger
Left Trigger=s1          #button id; precede with 'a' for an axis; 's' for a slider; 'x' for a half range axis; 'h' for half slider; use '-' to invert ie. x-2;
Right Trigger=s2         #button id; precede with 'a' for an axis; 's' for a slider; 'x' for a half range axis; 'h' for half slider; use '-' to invert ie. x-2;
UseForceFeedback=1        #use 0 to 1; default 0
SwapMotor=0               #use 0 to 1; default 0
ForcePercent=100          #use 0 to 100; default 100
ControllerType=1          #GAMEPAD 1; WHEEL 2; STICK 3; FLIGHT_SICK 4; DANCE_PAD 5; GUITAR 6; DRUM_KIT 8;   //WILDS
AxisToDPad=0              #Use Axis to control DPad (0 disabled, 1 enabled)                                 //WILDS
AxisToDPadDeadZone=256    #Dead zone for Axis                                                               //WILDS
AxisToDPadOffset=0        #                                                                                 //WILDS
POVXReverse=0             #Reverse POV Up/Down
POVYReverse=0             #Reverse POV Left/Right
Since I had my 360 controller already as pad 1 I had to set pad 1 as native and change I made the PS3 as pad 2. Add the above code section to just below the index portion of the pad your PS3 controller is.

Now you can create a controller layout in Xpadder or use mine.

Code: Select all

;--- Xpadder Controller Data ---
Version=5.7
Name=My PLAYSTATION(R)3 Controller
Button1Location=392,131
Button2Location=424,97
Button3Location=356,98
Button4Location=392,63
Button5Location=65,1
Button6Location=411,1
Button7Location=202,98
Button8Location=280,97
Button9Location=164,169
Button10Location=318,169
DPadUpLocation=90,64
DPadRightLocation=122,96
DPadDownLocation=90,128
DPadLeftLocation=58,96
Stick1UpLocation=164,137
Stick1RightLocation=196,169
Stick1DownLocation=164,201
Stick1LeftLocation=132,169
Stick2UpLocation=318,137
Stick2RightLocation=350,169
Stick2DownLocation=318,201
Stick2LeftLocation=286,169
TriggerLeftLocation=4,4
TriggerRightLocation=478,4
DPadUpAccess=POV
DPadRightAccess=POV
DPadDownAccess=POV
DPadLeftAccess=POV
Stick1XAccess=Axis X
Stick1YAccess=Axis Y
Stick2XAccess=Axis RX
Stick2YAccess=Axis RY
TriggerLeftAccess=Slider 1 Full
TriggerRightAccess=Slider 2 Full
Button1Name=Button 1
Button2Name=Button 2
Button3Name=Button 3
Button4Name=Button 4
Button5Name=Button 5
Button6Name=Button 6
Button7Name=Button 7
Button8Name=Button 8
Button9Name=Button 9
Button10Name=Button 10
DPadName=DPad
DPadUpName=Up
DPadRightName=Right
DPadDownName=Down
DPadLeftName=Left
Stick1Name=Stick 1
Stick2Name=Stick 2
StickUpName=Up
StickRightName=Right
StickDownName=Down
StickLeftName=Left
TriggerLeftName=Trigger Left
TriggerRightName=Trigger Right
Interesting, rumble doesn't work in the XInput test tool but does work in Xpadder. With XInput disabled the drivers force feedback driver causes a core loop error in Xpadder.

I would say this driver is about 85% there, six axis works, analog buttons and Dpad, and bluetooth. The only complaints I have is the Driver setting tool is not very intuitive and has no documentation or help system. Have to manually load driver through the devices properties in device manager. No English force feedback tray applet.

This is not the easiest thing to setup, do some searching only, there may be tutorials somewhere (if you find one feel free to post a link). These are third party drivers- Use at your own risk. If you need a lot of help these may not be your best choice.

bigou38
Posts: 5
Joined: 06 Dec 2009, 17:09

Re: PS3 controller + Xinput problem

Post by bigou38 »

Thank you very much!

However, I had to edit some point because your configs were not fully functional, I post below my config files if it can help someone else.

For information, the rumble works great with me and Xinput Xpadder.
Tested and functional Sp3 XP 32bit / 32bit Windows Pro 7

SDDriverSetting_e.exe (xxxxxxxx.ini)

Code: Select all

[HEADER]
Title=Xpadder_p
IniFileVersion=1.0
[SETTING]
Interval=8000
DeviceType=1
UseHatSwitch=1
HatSwitchMode=0
UseSlider1=14
SliderBaseCenter1=0
UseSlider2=13
SliderBaseCenter2=0
[DEADZONE]
System=0
L2=0
R2=0
[RAPID FIRE]
EnableRapidFire=0
FunctionButtonMask=65536
SpeedSelector=1
Speed1=15
Speed2=30
Speed3=10
Speed4=8
[AXIS MAP]
X=4
Y=3
Z=6
RotateX=0
RotateY=0
RotateZ=5
[AXIS INVERTE]
X=0
Y=0
Z=0
RotateX=0
RotateY=0
RotateZ=0
[CONVERTE OUT]
X=0
Y=0
Z=0
RotateX=0
RotateY=0
RotateZ=0
[BUTTON MAP]
00=7
01=9
02=10
03=8
04=12
05=13
06=14
07=15
08=16
09=17
10=5
11=6
12=4
13=2
14=1
15=3
16=11
17=0
18=0
[AXIS MAP2]
UseAxisMap2=0
DigitalY=0
DigitalX=0
AnalogLY=0
AnalogLX=0
AnalogRY=0
AnalogRX=0
TC=0
SC=0
SixaxisX=0
SixaxisY=0
SixaxisZ=0
[CONVERTE IN]
DigitalY=0
DigitalX=0
AnalogLY=0
AnalogLX=0
AnalogRY=0
AnalogRX=0
TC=0
SC=0
SixaxisX=0
SixaxisY=0
SixaxisZ=0
x360ce.ini :

Code: Select all

[Options]
UseInitBeep=1             #use 0 to 1; default 1; beep on init
Log=1                     #use 0 to 1; creates a log file in folder 'x360ce logs'
FakeAPI=0                 #use API patching

[PAD1]
Index=0                   #controller index in system game controllers list; 0 is first; -1 to ignore this pad
Native=0                  #experimental native mode, calls system xinput1_3.dll to support xinput compatible controller together with emulated
VID=0x0                   #controller VID
PID=0x0                   #controller PID
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+ 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=1                       #button id; 0 to disable
B=2                       #button id; 0 to disable
X=3                       #button id; 0 to disable
Y=4                       #button id; 0 to disable
Left Shoulder=5           #button id; 0 to disable
Right Shoulder=6          #button id; 0 to disable
Back=7                    #button id; 0 to disable
Start=8                  #button id; 0 to disable
Left Thumb=9             #button id; 0 to disable
Right Thumb=10            #button id; 0 to disable
TriggerDeadzone=0         #use 0 to 255; default 0; add deadzone to trigger
Left Trigger=s1          #button id; precede with 'a' for an axis; 's' for a slider; 'x' for a half range axis; 'h' for half slider; use '-' to invert ie. x-2;
Right Trigger=s2         #button id; precede with 'a' for an axis; 's' for a slider; 'x' for a half range axis; 'h' for half slider; use '-' to invert ie. x-2;
UseForceFeedback=1        #use 0 to 1; default 0
SwapMotor=0               #use 0 to 1; default 0
ForcePercent=100          #use 0 to 100; default 100
ControllerType=1          #GAMEPAD 1; WHEEL 2; STICK 3; FLIGHT_SICK 4; DANCE_PAD 5; GUITAR 6; DRUM_KIT 8;   //WILDS
AxisToDPad=0              #Use Axis to control DPad (0 disabled, 1 enabled)                                 //WILDS
AxisToDPadDeadZone=256    #Dead zone for Axis                                                               //WILDS
AxisToDPadOffset=0        #                                                                                 //WILDS
POVXReverse=0             #Reverse POV Up/Down
POVYReverse=0             #Reverse POV Left/Right
xxxxxxxxx.xpaddercontroller

Code: Select all

;------------------------
; Xpadder Controller File
;------------------------

Version=5.7

[Button Locations]
Button1Location=385,126
Button2Location=422,92
Button3Location=343,90
Button4Location=383,53
Button5Location=101,5
Button6Location=384,2
Button7Location=199,93
Button8Location=283,92
Button9Location=169,162
Button10Location=314,159
Button11Location=242,119
DPadUpLocation=100,61
DPadRightLocation=132,93
DPadDownLocation=100,125
DPadLeftLocation=68,93
Stick1UpLocation=169,130
Stick1RightLocation=201,162
Stick1DownLocation=169,194
Stick1LeftLocation=137,162
Stick2UpLocation=314,127
Stick2RightLocation=346,159
Stick2DownLocation=314,191
Stick2LeftLocation=282,159
TriggerLeftLocation=20,8
TriggerRightLocation=463,11

[Access]
DPadUpAccess=POV
DPadRightAccess=POV
DPadDownAccess=POV
DPadLeftAccess=POV
Stick1XAccess=Axis X
Stick1YAccess=Axis Y
Stick2XAccess=Axis RX
Stick2YAccess=Axis RY
TriggerLeftAccess=Slider 1 Full
TriggerRightAccess=Slider 2 Full

[Names]
Button1Name=Button 1
Button2Name=Button 2
Button3Name=Button 3
Button4Name=Button 4
Button5Name=Button 5
Button6Name=Button 6
Button7Name=Button 7
Button8Name=Button 8
Button9Name=Button 9
Button10Name=Button 10
Button11Name=Button 11
DPadName=DPad
DPadUpName=Up
DPadRightName=Right
DPadDownName=Down
DPadLeftName=Left
Stick1Name=Stick 1
Stick2Name=Stick 2
StickUpName=Up
StickRightName=Right
StickDownName=Down
StickLeftName=Left
TriggerLeftName=Trigger Left
TriggerRightName=Trigger Right

Post Reply