..:: PCSX2 Forums ::..

Full Version: ScpToolkit (XInput Wrapper aka ScpServer Reloaded)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(04-06-2016, 11:03 PM)joshg Wrote: [ -> ]Well based on some of the stuff that I found when digging into using this with Linux, I would guess that they are probably either using some of the existing Linux kernel modules for sixaxis support and/or sixad similar to what I posted before but modified to work with Android. I am not certain on this though.

I have tried to do a little debugging and comparison and so far my general initial assessment is as follows...

1) In the Linux daemon they are not seemingly doing anywhere near as much of the back and forth with HCI / L2CAP as what I am seeing with ScpToolkit. Some of this might be just using existing bluetooth functionality already in Linux or maybe they are just keeping it much lighter in that regard?

2) He has modified to essentially push some of the stuff that you have in BthDs3.cs, specifically like with this:
Code:
               if (IsFake)
               {
                   //_hidOutputReport[0] = 0xA2;
                   //_hidOutputReport[3] = 0xFF;
                   //_hidOutputReport[5] = 0x00;
               }

But in the Linux sixad they are instead pushing the "fake" first and then just executing the enable command for original immediately after.  Also he is pushing both of these pretty early in the process from what I can tell .. by contrast with my GAME-O pad and ScpToolkit none of the code in BthDs3 is never even called because the device is never Start()ed .. it just gets into that disconnect / connect loop and never even gets to the point where the BthDs3 code could modify the buffer like that even if we were to uncomment these lines of code.

What I am seeing on their side is almost even a little different process entirely....

Start up the bluetooth and then the worker process looks like it is under void hid_server.  Line 316 of bluetooth.cpp you can see the loop (while (!io_canceled())) which looks relatively synonymous to the loop in ScpToolkit's ScpControl for Bluetooth, in BthDongle.Tasks.cs void HicWorker

Then if things check out it seems like it is calling over to l2cap_accept which is basically just setting up a new device ? (creates instance of sixad-sixaxis ) .. and when this is done, it is opening some kind of stream for the device with uinput and running enable_sixaxis which pushes that buffer for both fake and original. 

Not sure if I am seeing this wrong, but on initial glance it looks like what they are doing is much more streamlined and there isn't anywhere near as much of this "back and forth" that seems to be happening with Scp ... am I getting that part wrong?

I looked a little more last night and this morning.

It may not be that far off but probably Nefarius could know better than me Smile

I am kind of leaning to now the line in BthDongle.Tasks.cs:HicWorker under the case for HCI.Event.HCI_Remote_Name_Request_Complete_EV where it is running a connection = Add(...); ... Somewhere either immediately up to or during this might be where the breakdown is happening.  I have tried to do a few things to force the ScpServer to continue here but still no dice... including things like setting CanStartService=true in the constructor for BthDs3 as well as trying to manually send these same bytes as what the customized sixad in linux is doing but still getting the same result - disconnect/connect loop.

I also tried just commenting out the Remove() for HCI Disconnect event but that still does not work (the thinking was that maybe the remove command coming from the interface was bogus so what if we ignore it?).

The LEDs are flashing a little differently depending on how I tweak things (longer flash sometimes) and getting a few "parameter is incorrect" runtime errors but I am not sure if I am any closer with this or not as of yet unfortunately. :|
(04-07-2016, 09:17 AM)jingvar Wrote: [ -> ]I tried this package


Also, I used another fake gamepad



They can not connect.  In QtSixA,  i see gamepad in device list after press button, but After a short time is lost

Jingvar did you do a build of the github repo in my prior post?  The custom version of QtSixA

For me I found that I had to do two things in order to get them to work:

1) Run sixpair as root or using sudo after all of the controllers which you want are already plugged in. 
2) Run the following commands as root or using sudo:
Code:
sixad --stop
sixad --start
This is without even QtSixA gui running at all.  Only without running QtSixA was I able to get the controllers to connect with bluetooth.  Then once that worked, it worked every time including when running QtSixA.

You actually don't even need QtSixA except that it helps you manage settings and is more of a profile manager.

Also if you run QtSixA as root or using sudo then there are a lot more options enabled.  Another thing that I did at one point but don't know if it made a difference before doing the above was clicking on the "force enable" for the bluetooth driver in QtSixA as root (which, similar to ScpToolkit here, basically blocks your system from using bluetooth for anything else except sixad).  Tons more info here but I guess this is sort of a separate topic from this thread here at pcsx2 Smile http://ubuntuforums.org/showthread.php?t...1&page=108
(04-07-2016, 05:05 AM)kenneth.baste Wrote: [ -> ]hi im a newbie here ,. just installed my fake ds3. was working plugged and unplugged. then suddenly it just stop working when unplugged. before when i press the ps button. system will detect fake ds3 looking for woraround, but now it doesent do that anymore. i tried reinstalling it but no luck. i found scpcontroll note pad that under fake controllers supported name = PLAYSTATION®3Controller but mine was named PLAYSTATION®3 controller      (with space between ® and 3)

Kenneth what happens when you run ScpMonitor and look at the Host Address?  Does it have a MAC address or does it say something else like 0:0:0:0:0:0 or error?  If it does then there is some kind of issue with your bluetooth adapter ... you can try uninstalling and reinstalling bluetooth driver, and using force option if that still doesn't work.

Once when I had something messed up like this, I had to go to device manager and manually wipe out all of the drivers and update the driver for my bluetooth adapter back to the one that Windows found for it. Then I ran the Scp Driver Installer again and it worked after that.

If that is not your issue, then.. hmmm we can try to come up with ideas from there Smile
I'm pretty sure this is for an official Dualshock 2 controller

Edit: I should probably mention the use of a Playstation to usb adapter too.

PS® Gamepad Adaptor_hid-report.dump

Code:
\\?\hid#vid_0e8f&pid_0003#6&1aaf89f5&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}


Nothing                        - 00 8D 87 8D 82 FF 0F 00 00
Circle                         - 00 8D 87 8E 87 FF 2F 00 00
Cross                          - 00 8D 87 8E 87 FF 4F 00 00
Triangle                       - 00 8D 87 8E 87 FF 1F 00 00
Square                         - 00 8C 85 8E 87 FF 8F 00 00
Select                         - 00 8C 86 8E 8C FF 0F 10 00
Start                          - 00 8C 86 8C 8C FF 0F 20 00
DpadUp                         - 00 8C 86 8C 8C FF 00 00 01
DpadUpAndRight                 - 00 8C 86 8C 8C FF 01 00 03
DpadRight                      - 00 8C 86 8C 8C FF 02 00 02
DpadRightAndDown               - 00 8C 86 8C 8C FF 03 00 06
DpadDown                       - 00 8C 86 8C 8C FF 04 00 04
DpadDownAndLeft                - 00 8C 86 8C 8C FF 05 00 0C
DpadLeft                       - 00 8C 86 8C 8C FF 06 00 08
DpadLeftAndUp                  - 00 8C 86 8C 8C FF 07 00 09
LeftShoulder                   - 00 8C 86 8C 8C FF 0F 01 00
RightShoulder                  - 00 8C 86 8C 8C FF 0F 02 00
LeftTrigger                    - 00 8C 86 8C 8C FF 0F 04 00
RightTrigger                   - 00 8C 86 8C 8C FF 0F 08 00
LeftThumb                      - 00 8C 86 8C 76 FF 0F 40 00
RightThumb                     - 00 81 91 74 79 FF 0F 80 00
LeftStickRight                 - 00 83 8D FF 98 FF 0F 00 00
LeftStickLeft                  - 00 83 8D 00 76 FF 0F 00 00
LeftStickUp                    - 00 83 8D 80 00 FF 0F 00 00
LeftStickDown                  - 00 83 8D 7D FF FF 0F 00 00
RightStickRight                - 00 FF B7 7B 7B FF 0F 00 00
RightStickLeft                 - 00 00 82 7B 7B FF 0F 00 00
RichtStickUp                   - 00 71 00 7B 7B FF 0F 00 00
RightStickDown                 - 00 6F FF 7B 7B FF 0F 00 00
(04-07-2016, 02:28 PM)fussen Wrote: [ -> ]Hi, I have a problem. Scp does not recognice my dualshock 3 controller. I re-installed it so many times and nothing happens, all 4 player lights keep flashing.

Pls halp.

my os: w10

Any ideas?
(04-07-2016, 11:14 PM)fussen Wrote: [ -> ]Any ideas?

I think you are probably going to have to give a lot more detailed information unfortunately.  This is not a lot to work with so far Sad

Are you trying to use it wired or wireless?

Either case you need the drivers installed (sounds like you have done this?) and the SCP Service or stand-alone ScpServer running.

If you are using wired (plugged in to USB) then the lights will blink while the controller is charging no matter what.  You might try pushing and holding the PS button for a few seconds to see if one of the lights starts to blink alternating with all of the other 4.  Once the controller has completed charging then the lights should stop flashing and only the controller identifier (1, 2, 3, or 4) should stay lit solid.

Also you must plug the controller in wired over USB in order to install the driver.  You also have to select the controller from the list (click on the arrow to expand) when you install the driver, and it has to be plugged in both before you open the Driver Installer and while you are installing the driver.

If your controller is not a genuine Sony PS3 controller and your issue is only that it will not connect wirelessly, but does work with the wire, then, well... welcome to the club.  This part probably won't work yet if you are using a fake DS3 controller. Nefarius is looking into it as he has time.  I have been trying to hit my head against the wall with it, too. Smile
Is there a way to disable the notifications? Sorry if this has been asked before, I'm not really able to find it.
Quote:joshg
Jingvar did you do a build of the github repo in my prior post?  The custom version of QtSixA

For me I found that I had to do two things in order to get them to work:

1) Run sixpair as root or using sudo after all of the controllers which you want are already plugged in. 
2) Run the following commands as root or using sudo:
Code:
sixad --stop
sixad --start
This is without even QtSixA gui running at all.  Only without running QtSixA was I able to get the controllers to connect with bluetooth.  Then once that worked, it worked every time including when running QtSixA.

You actually don't even need QtSixA except that it helps you manage settings and is more of a profile manager.

Also if you run QtSixA as root or using sudo then there are a lot more options enabled.  Another thing that I did at one point but don't know if it made a difference before doing the above was clicking on the "force enable" for the bluetooth driver in QtSixA as root (which, similar to ScpToolkit here, basically blocks your system from using bluetooth for anything else except sixad).  Tons more info here but I guess this is sort of a separate topic from this thread here at pcsx2 Smile http://ubuntuforums.org/showthread.php?t...1&page=108

Yes, I build it from https://github.com/supertypo/qtsixa
Also, I reinstalled ubuntu 15.10 32bit
Download .zip from https://github.com/supertypo/qtsixa
I have two laptops (One  with an integrated bluetooth)
I used the laptop to test with an external bluetooth (vid/pid in the compatible list)


I installed a bunch of packages to build qrsixa
Make Install
When i connect gamepad via usb - vibration (i don't have it with original version qtsixa, for understanding the differences )

I always use sudo.

How can i  use debug? I want look to step by step initialisation (/etc/default/sixad debug=1, Your version of the package gives nothing in the original gives uninformative log - like"one event received")

yet I try to install android emulator on Ubuntu with the bluetooth sniffer...
Hello ) ) I have a problem with bluetooth connectivity joystick .
After installing the drivers, everything works fine
Host address: C4: 8E: 8F: 9D: 20 : EC
HCI Version: 7.0000
EPM Version: 7.025A
as soon as I restart the computer stops the joystick connected to the computer via bluetooth and Host address change to : 00 : 00 : 00 : 00 : 5A: AD
HCI Version changed to : 6.0000
LMP Version changed to 6.025A
Please tell me how to solve this problem?Mellow
(04-07-2016, 11:48 PM)joshg Wrote: [ -> ]I think you are probably going to have to give a lot more detailed information unfortunately.  This is not a lot to work with so far Sad

Are you trying to use it wired or wireless?

Either case you need the drivers installed (sounds like you have done this?) and the SCP Service or stand-alone ScpServer running.

If you are using wired (plugged in to USB) then the lights will blink while the controller is charging no matter what.  You might try pushing and holding the PS button for a few seconds to see if one of the lights starts to blink alternating with all of the other 4.  Once the controller has completed charging then the lights should stop flashing and only the controller identifier (1, 2, 3, or 4) should stay lit solid.

Also you must plug the controller in wired over USB in order to install the driver.  You also have to select the controller from the list (click on the arrow to expand) when you install the driver, and it has to be plugged in both before you open the Driver Installer and while you are installing the driver.

If your controller is not a genuine Sony PS3 controller and your issue is only that it will not connect wirelessly, but does work with the wire, then, well... welcome to the club.  This part probably won't work yet if you are using a fake DS3 controller. Nefarius is looking into it as he has time.  I have been trying to hit my head against the wall with it, too. Smile

Hi, thanks for your reply  Smile

My controller is a genuine dualshock 3 from my ps3. This is not the first time I use scp but this time it does not work and I dont know why, I just followed the instructions as always. Im trying to connect it through the USB cable, install the driver and all the 4 lights starts to blink, I press the ps button but nothing happens and yes, the service is running Mellow