ndeadly / MissionControl

Use controllers from other consoles natively on your Nintendo Switch via Bluetooth. No dongles or other external hardware neccessary.
GNU General Public License v2.0
2.49k stars 139 forks source link

DS4 controller never pairs #133

Closed shinhikari closed 3 years ago

shinhikari commented 3 years ago

I cant for the life of me connect my ds4 to my switch. I am on atmosphere 0.14.4 and firmware 10.2.0 using missioncontrol 0.3.0. I have tried simply pressing share and ps button and also tried l1 r1 ps and share button at same time and also ps and share and then l1 r1. I have also tried resetting the controller but to no avail. I have tried this at full battery and less than full battery both ways put even then no success in pairing. I have also tried missioncontrol 0.2.0 and 0.2.1 but no success. Also I have wiped the controller databse using btdb.nro many times. Please help

shinhikari commented 3 years ago

Also i have tried it with both airplane mode off and airplane mode on with bluetooth turned on. The joycons work fine with bluetooth. The ds4 pairs with iphone and android just fine and works with supporting games.

ndeadly commented 3 years ago

Are you doing all this while on the Change Grip/Order screen?

You don't need to press the shoulder buttons, that's mostly used for setting the joycon hold configuration. If you've got a DS4 v1 or a third party controller you may have to try several times before it will finally pair. Also make sure you are actually in pairing mode. The LED flash pattern should resemble a heartbeat.

shinhikari commented 3 years ago

Yes I have tried it in both change grip order screen and the cobtroller screen and also have put the controller in pairing mode which as you said is a heaetbeat constantly flashing twice per second then a delay of a second then next heaetbeat (2 continuos fast beats). I believe my controller is v2 ds4 because it has a light bar on the trackpad. I have tried this many times in all screens and on many different days 10 to 30 times.

The only thing I havent done is use atmosphere 0.15.0 with missioncontrol 0.3.0 but even with 0.14.4 and missioncontrol 0.2.1 and 0.2.0 it didnt work. Will try it with latest atmos version tonight.

ndeadly commented 3 years ago

The console only searches for Bluetooth devices on the Change Grip/Order screen, so no point in trying anywhere else. Yeah, if you've got the light strip across the top of the trackpad then you have a v2. I haven't heard of anyone else having problems with those. You should be using the latest version of MissionControl, there is nothing in the older versions that will improve your chances of a connection. System firmware and Atmosphere version shouldn't really matter too much as long as you have Atmosphere >= 0.14.2, though its never a bad idea to make sure everything is up to date.

Make sure you are using the official release from github and not something somebody else has packaged up. Do you have any other Bluetooth controller you could use to check if MissionControl is installed properly and actually running?

shinhikari commented 3 years ago

Nah I only have the joycons and as far as I can see after deleting using btdb.nro i have to reconnect both joycons physically to go to home screen. So i just tried this, i connected the left joycon via bt and right directly to switch and wiped database using switch controller settings option to "disconnect controller.". Then just my right joystick was being detected by switch and so I came to the switch menu and paired left joycon which connected just fine as a single controller which I readjusted to right left pair by pressing l and r on both controllers again. So as you say I also believe the problem must be in the installation. I have done this every time to install. Dragged the bd00 folder in atmosphere/contents and the bluetooth patches in atmosphere/exefs_patches. after deleting the old bd00 folder from previous missioncontrol 0.2.1 and same for the bt patches folder. I dont believe Replacing the old bd00 and bt patches folders would be a problemas the switch boots with the new ones fine.

ndeadly commented 3 years ago

Official controllers will pair successfully regardless of whether MissionControl is running, you would need a normally unsupported one to verify. As long as you're not switching from one of the older releases you shouldn't need to delete your database anymore, especially if there was never any entry for the DS4 in the first place. This was only required because I wasn't originally able to store the real controller names to the database so everything looked like a Pro Controller.

Although what you've done sounds like it should be fine, I've seen funny things happen when copying files over to SD before. The proper way to install is to extract the release zip to your hard drive and then drag the atmosphere folder to the root of your SD card and let it overwrite everything. It eliminates any chance of getting anything wrong.

shinhikari commented 3 years ago

I think I might finally know after all this time what the problem is... I checked and rechecked every file in the atmosphere folder 0.14.4 and its sigpatches, turned out I had one extra file in the loader patches in kip patches and also a few extra folders in the contents folder from some of the previous homebrews and those homebrews were ldn_mitm and kosmos toolbox as well as sysclkmod something nro. I deleted the extra folders and homebrew files and then tried everything but controller didn't work. So, except for the nintendo folder which contains the games I did a fresh atmosphere 0.15.0 and sigpatches and missioncontrol 0.3.0 but that didnt work too because I use hekate and used the hekate patches for the atmosphere and bootloader folders which is like 2 more files, one in the kip_patches/loader_patches and other in the bootloader. Is it because I'm using Hekate ??

Should I try using just atmosphere with fusee sigpatches only.

PS: I don't think I read vanilla atmosphere only support or was my setup wrong from the start ??

shinhikari commented 3 years ago

I just rechecked and hekate is just a custom bootloader and the cfw is atmosphere itself (vanilla atmosphere), if so it shouldn't be a problem. Do u know of any other users who have the same hekate bootlader for atmosphere cfw.

ndeadly commented 3 years ago

I've used both hekate and fusee bootloaders without a problem.

hid_report_tool.zip

Download this and copy to the root of your SD. Detach one of your Joycons from the console and connect it via Bluetooth. Launch the application from the homebrew menu. If you see random hex numbers updating on the screen then it means MissionControl is running and redirecting inputs to the application. If it crashes on startup or nothing appears then it's probably not.

shinhikari commented 3 years ago

I just did that and the numbers kept on updating at the speed of light which rules out the possibility of their being any problem with the setup. What I can do is go to a game shop and try connecting one of their used ps4 controllers to this tomorrow but because of the virus and me literally sitting at home and being stuck on pc and classes all day I kinda dont want to.

Also my PS4 controller works fine with my mobile and works with supporting games but since Iv'e sold my PS4 its not been connected to any PS4 and has been reset many times but it connects like a ps controller which I checked by pressing just the ps button after connecting to mobile when controller was off and it connecting automatically which I then reset again and hence just pressing the ps button only does not autoconnect to anything right now and I use both share and ps button together to connect. I've even seen videos on youtube of ds4 connecting to switch via missioncontrol and it takes about 3 - 10 secs at most or maybe longer but for me no luck.

The model number for my ds4 is CUH-ZCT1E but it still has a lightbar on top. I think it might be a very good fake since it used to connect to my ps4 just fine. or maybe some sort of repair piece with mixed hardware which could be causing the problem but my mobile also reads it as DS4 wireless controller.

So should I close the issue since the software works fine. Also btw are u getting a ps5 at launch?? Sorry I asked 😅

ndeadly commented 3 years ago

Ok, sounds like it is running. Weird. Yeah, both of my DS4 v2 controllers are probably the fastest of all controllers to connect that I own. One is consistently less reliable than the other though, so there are definitely differences in hardware.

One more thing you could try is run this debug version and post the log it creates (sdmc:/bluetooth-mitm.log) It will allow me to see if there's anything unexpected going on when you try to pair the controller. MissionControl-0.3.0-debug-logging.zip

Also btw are u getting a ps5 at launch??

Probably not. I was asleep when they unexpectedly put them up for preorder here in Europe. I will keep my eyes out on release day but not getting my hopes up. Someone else will probably have to help me add Dualsense controller support. Fingers crossed it's not Bluetooth LE.

Masamune3210 commented 3 years ago

All I can find on the specs so far for the DualSense is its using Bluetooth 5.1, I know some people are already working on dumping stuff to help DS4Windows support it, so you might find someone who could help

Masamune3210 commented 3 years ago

in unrelated news, the new xbox controller uses le apparently

ndeadly commented 3 years ago

@Masamune3210 I have a feeling they'll both use LE, but I guess we'll have to wait and see. I read somewhere last week that someone was able to use the Dualsense with their PS3. I'm sure there will be no shortage of people requesting both controllers here once they're officially released. Either they connect and can be mapped like any other controller, or they're LE only and we have to wait until I figure out how to make BLE connections.

Masamune3210 commented 3 years ago

Forgive the out of scope for the issue discussion, but does the switch even support LE?

fennectech commented 3 years ago

Might be wise to creat an 'issue' for discussion of this type xD

ndeadly commented 3 years ago

Forgive the out of scope for the issue discussion, but does the switch even support LE?

@Masamune3210 yes, the switch has support for BLE. I believe the Pokeball Plus uses it. There are loads of BLE functions exposed over IPC, I'm just not sure how to use them yet. It's more complicated than the regular Bluetooth and I don't have any supported device to observe the connection process in action.

Might be wise to creat an 'issue' for discussion of this type xD

Yeah, let's try to keep this discussion on-topic from here on.

shinhikari commented 3 years ago

i did that just now and here is the file. I conected a joycon first then tried connecting the ds4 which obviously didnt work. The thing with the model number is that it has v1 model number and it still has a lightbar on the touchpad. Strange and probably the root of all problems. Btw I bought it second hand. bluetooth-mitm.log

ndeadly commented 3 years ago

So from that log I can see that the controller is being seen by the Switch and authentication is started, but it never completes. Nothing looks out of place for a ds4 controller, but it is strange with the model number thing. I can only assume it's either a fake with incompatible hardware or some weird hardware revision/mixup released around the time they switched over. The only thing I can really suggest is that you leave the console on the Change Grip/Order screen and keep restarting the pairing process whenever the lights stop flashing. If you're lucky it might just suffer from an extreme case of the v1 controller issue and pair eventually. If that doesn't work then it's probably a lost cause unfortunately. Since many controllers are only meant to run on a specific system there's no need for them to consider outside compatibility during testing.

shinhikari commented 3 years ago

Thanks for all the support. Im gonna close the issue now.

ndeadly commented 3 years ago

Also make sure you reinstall the release version instead of the debug one I linked. The logging introduces significant lag and may further reduce your chances of a successful pairing.

shinhikari commented 3 years ago

Ok. Good luck with the ps5.