Homebrew RELEASE MissionControl: Use controllers from other consoles natively via Bluetooth

Grimlo

New Member
Newbie
Joined
Sep 11, 2021
Messages
4
Trophies
0
Age
34
XP
120
Country
United States
I really love the wotk you have been doing with mission control during all this time. It has become a #1 tool for me. I wanted to ask if someone else is having the same issue as me on your latest version. The issue is that whenever I connect my ps4 controller it starts vibrating and won't stop doing it no matter what I do. I'm on fw 13.10, ams 1.2.4 and mission Control 0.61.
 

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
467
Trophies
0
Age
36
XP
2,605
Country
Australia
I really love the wotk you have been doing with mission control during all this time. It has become a #1 tool for me. I wanted to ask if someone else is having the same issue as me on your latest version. The issue is that whenever I connect my ps4 controller it starts vibrating and won't stop doing it no matter what I do. I'm on fw 13.10, ams 1.2.4 and mission Control 0.61.
https://github.com/ndeadly/MissionControl/issues/385
 
  • Like
Reactions: Grimlo

Grimlo

New Member
Newbie
Joined
Sep 11, 2021
Messages
4
Trophies
0
Age
34
XP
120
Country
United States
You are awesome dude. Sorry for missing the fix earlier. And thank you very much for such a quick reply. I'm truly grateful for everything you do for the scene.
 
  • Like
Reactions: ndeadly

jimkage

Well-Known Member
Member
Joined
Oct 19, 2017
Messages
114
Trophies
0
Age
22
XP
1,215
Country
Brazil
Is it possible to disable battery notification for dual shock 4 on a separate release or even disable it through the config file ? I ve been getting low battery notification for hours and it really sucks even with the alarm disabled the notification still pops in the screen.
 

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
467
Trophies
0
Age
36
XP
2,605
Country
Australia
Is it possible to disable battery notification for dual shock 4 on a separate release or even disable it through the config file ? I ve been getting low battery notification for hours and it really sucks even with the alarm disabled the notification still pops in the screen.
No, the battery notifications cannot be controlled and are a direct result of the battery level being reported by the controller. It's possible the conversion between the PS4 and switch battery levels needs to be tuned better so that the warnings start later, I've never tested thoroughly because of the amount of time required to run down a battery while checking the reported values.

If you believe there's a problem with the battery level mapping, open an issue on the project github page and maybe me or somebody else will look into it at some point. In the meantime your options are either build from source yourself and disable the battery level mapping, or charge the controller.
 
  • Like
Reactions: MUDD_BR

KirovAir

Alcoholic Programmer
Member
Joined
Dec 7, 2006
Messages
770
Trophies
1
Age
32
Location
Netherlands
Website
www.jessesander.nl
XP
2,447
Country
Netherlands

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
467
Trophies
0
Age
36
XP
2,605
Country
Australia
Thank you for your efforts. Amazing module! :D

Just a question purely for interest: is bluetooth LE a hurdle that is limited by software or by hardware? E.g. should she switch implement it in their kernel first or would we be able to implement a custom stack in the sysmodule. (Or not at all because of the hardware)
It's a software issue. The bluetooth driver has full support for LE, and these functions are even exposed via the IPC interface. Connecting an LE controller is relatively trivial, the core problem is integration with the OS. The only LE device officially supported is the Pokeball Plus controller, which implements its own proprietary services rather than the standard hid profile, thus there is no existing code waiting to handling incoming data reports, connection events etc for these kind of controllers. Of course we could implement this stuff ourselves, but there is still the question of how to make the console interact with LE controllers correctly when all the device management code has been written with regular bluetooth connections in mind.
 
  • Like
Reactions: KirovAir

yoboivsuace

New Member
Newbie
Joined
Aug 11, 2021
Messages
1
Trophies
0
Age
20
XP
24
Country
Jordan
Two things I want to ask about:
1. Any way to remap the Wiimote dpad to act as a joystick instead so it can function in games such as Mario 3D world, the same way it did back on the Wii U
2. I’m facing a DualShock 4 issue, when I connect my Joycon’s and the ds4 as well, the ds4 vibrates forever. Is this a common issue with 13.0.1? Didn’t face it before that’s why I’m wondering
Thanks as always for all the work!
 

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
467
Trophies
0
Age
36
XP
2,605
Country
Australia
1. Any way to remap the Wiimote dpad to act as a joystick instead so it can function in games such as Mario 3D world, the same way it did back on the Wii U
Not currently, unless you want to get into editing the source code and compiling for yourself. Banz99 has been working with me to create a pull request to add a bunch of controller configuration options, and swapping the left stick and dpad is one of them. It's a work in progress, and probably needs to be updated to work with the latest changes I've made to Mission Control, but you can check out the source code here. This will eventually be merged and released when I've finished the tesla overlay and/or homebrew applet for interacting with the controller settings.

2. I’m facing a DualShock 4 issue, when I connect my Joycon’s and the ds4 as well, the ds4 vibrates forever. Is this a common issue with 13.0.1? Didn’t face it before that’s why I’m wondering
Thanks as always for all the work!
This is an issue that popped up with one of the recent Atmosphere releases. Not exactly sure why, as I didn't change any MC code related to rumble, but my theory is that the issue was always there and some change to Atmosphere made it much more likely to trigger. Anyways, the main point of the new release posted above (0.6.2) was to address this and a couple of other rumble issues people had reported. Have you updated to this version?
 
  • Like
Reactions: hippy dave

chrisrlink

Has a PhD in dueling
Member
Joined
Aug 27, 2009
Messages
5,560
Trophies
2
Location
duel acadamia
XP
5,737
Country
United States
Last edited by chrisrlink,

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
467
Trophies
0
Age
36
XP
2,605
Country
Australia
was wondering how adding controllers to the compat list at source code level works? I have a MOGA XP5-X plus I'd like to add to work on my switch normally used on mobile phones/tablets can also be used on PC/Mac

heres the controller

https://www.amazon.com/gp/product/B08F6H8TBD/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&th=1
Normally it would just be a case of adding the vid/pid to the list, since support for other MOGA controllers is already implemented and this one likely uses the same reporting format. This particular controller uses Bluetooth LE however, which is not supported at the moment so currently it's not possible to actually connect the controller to the console. There's an issue on github tracking it already https://github.com/ndeadly/MissionControl/issues/330
 

silvershadow

Well-Known Member
Member
Joined
May 16, 2006
Messages
433
Trophies
1
XP
2,465
Country
Canada
Thank you again @ndeadly , I'm a big advocate of mission control. as of lately, I'm finding that I need to re-pair my ps4 controller a lot more than normal. (and I don't even use the controller with anything else).

the amount of times I'm pairing isn't really the problem though, the biggest thing I'm running into is the unreliability of it pairing. I've spent the better part of an hour trying to pair last week, and just when I was about to give up, it finally paired. I did not restart or change anything, just kept trying and trying and trying and trying and trying..lol.

I thought it was really cool the way the mayflash adapter pairs with controllers. you connect it with a usb cable, this does the initial pair, and then bam, its instant pairs wirelessly every time after that.

I know you don't support connecting via USB, but I was wondering if it would be possible for mission control to somehow do the initial pair VIA usb connection (this would make it instant), rather than relying on the pairing mode of the ps4 controller. Is this feasible? In a way, similar to how you pair a Nintendo switch pro controller quickly.

The past week, every time I want to enjoy a gaming session, I've resorted to using the mayflash adapter because it pairs more reliably, I cant afford to spend upwards of an hour trying to pair every time.

I'm also pretty sure this is just my bad luck, so I'm not surprised.

I am still a big advocate of mission control. If you require any testing or need me to capture any debug information, let me know and ill do what I can.
 
Last edited by silvershadow,

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
467
Trophies
0
Age
36
XP
2,605
Country
Australia
Thank you again @ndeadly , I'm a big advocate of mission control. as of lately, I'm finding that I need to re-pair my ps4 controller a lot more than normal. (and I don't even use the controller with anything else).

the amount of times I'm pairing isn't really the problem though, the biggest thing I'm running into is the unreliability of it pairing. I've spent the better part of an hour trying to pair last week, and just when I was about to give up, it finally paired. I did not restart or change anything, just kept trying and trying and trying and trying and trying..lol.

I thought it was really cool the way the mayflash adapter pairs with controllers. you connect it with a usb cable, this does the initial pair, and then bam, its instant pairs wirelessly every time after that.

I know you don't support connecting via USB, but I was wondering if it would be possible for mission control to somehow do the initial pair VIA usb connection (this would make it instant), rather than relying on the pairing mode of the ps4 controller. Is this feasible? In a way, similar to how you pair a Nintendo switch pro controller quickly.

The past week, every time I want to enjoy a gaming session, I've resorted to using the mayflash adapter because it pairs more reliably, I cant afford to spend upwards of an hour trying to pair every time.

I'm also pretty sure this is just my bad luck, so I'm not surprised.

I am still a big advocate of mission control. If you require any testing or need me to capture any debug information, let me know and ill do what I can.
Firstly, just to be clear, when you say pairing are you referring to synching the controller at the Change Grip/Order screen or simply reconnecting to the console? Many people seem to use the terms interchangeably (or think you need to do the former every time you want to connect the controller) and it gets confusing.

Re-pairing should not be a thing that's required unless the controller or console has forgotten the link key (ie. the controller has been re-paired with something else or reset) Are you switching between emummc and sysnand or anything? Once these become desynchronised it's essentially the same as connecting to two separate consoles.

I do feel like DS4 pairing has become a little less reliable since maybe 13.0.0. Couldn't really say why this is as it's kind of out of my control. All mission control really does is modifiy a few values on the fly so that the existing Nintendo code will actually attempt to pair the controller. Everything responsible for the actual pairing is all official Nintendo code. What can make a big difference to pairing reliability is hitting the reset button on the controller. Some of the earlier DS4 models have always been a bit unreliable, and through resetting the controller will often connect right away. It might also help to clear your pairing database in case something weird is happening with that. I had a handful of reports from people saying they needed to do this after updating to 13.0.0.

As for the USB pairing, I can look into it but it's probably more trouble than it's worth. I've toyed around with this kind of thing already for the DS3 controller so I know it's possible to exchange some things via USB. As far as I can tell though, without patching the bluetooth stack to skip over a bunch of things, you would still need to finalise the pairing via the same means as a wireless connection in order for the pairing info to be stored to the database (landing us in the same situation). The thing to realise here is that MayFlash has complete control over the bluetooth stack running on their hardware and can tune it accordingly to play nice with the DS4 controller.
 

silvershadow

Well-Known Member
Member
Joined
May 16, 2006
Messages
433
Trophies
1
XP
2,465
Country
Canada
Firstly, just to be clear, when you say pairing are you referring to synching the controller at the Change Grip/Order screen or simply reconnecting to the console? Many people seem to use the terms interchangeably (or think you need to do the former every time you want to connect the controller) and it gets confusing.

Re-pairing should not be a thing that's required unless the controller or console has forgotten the link key (ie. the controller has been re-paired with something else or reset) Are you switching between emummc and sysnand or anything? Once these become desynchronised it's essentially the same as connecting to two separate consoles.

I do feel like DS4 pairing has become a little less reliable since maybe 13.0.0. Couldn't really say why this is as it's kind of out of my control. All mission control really does is modifiy a few values on the fly so that the existing Nintendo code will actually attempt to pair the controller. Everything responsible for the actual pairing is all official Nintendo code. What can make a big difference to pairing reliability is hitting the reset button on the controller. Some of the earlier DS4 models have always been a bit unreliable, and through resetting the controller will often connect right away. It might also help to clear your pairing database in case something weird is happening with that. I had a handful of reports from people saying they needed to do this after updating to 13.0.0.

As for the USB pairing, I can look into it but it's probably more trouble than it's worth. I've toyed around with this kind of thing already for the DS3 controller so I know it's possible to exchange some things via USB. As far as I can tell though, without patching the bluetooth stack to skip over a bunch of things, you would still need to finalise the pairing via the same means as a wireless connection in order for the pairing info to be stored to the database (landing us in the same situation). The thing to realise here is that MayFlash has complete control over the bluetooth stack running on their hardware and can tune it accordingly to play nice with the DS4 controller.

Thanks for the response. Everything you said makes sense! I was thinking the same thing with the mayflash too. They have full control.


Just to help clear up a few of the first points:

After a few failed attempts, I would wipe the pairing database on the switch and use the reset button on the controller.

My emummc is a copy of the sysnand but you are right, this would explain the reason I would have to re-sync when I switch back to sysnand.

When I say pairing, I mean sync at the controller screen, not just a simple reconnect.

I think the problem I'm running into is, I would pair with sysnand, then pair with emummc and leave it for the next day. Then I'll go try it on sysnand and it won't work, I would have to spend some time trying to re-sync it.

I believe a combination with me "changing the link key" without even thinking, as well as the 13.0.0 changes that may have made pairing more painful, it just adds to the negative experience.

I'll be more mindful and only pair with the sysnand (since that's where I need it more).

Thank you again, and please don't take this the wrong way, I'm really grateful for mission control, just was hoping any feedback I can give will help in the long run.

As a fellow coder, I understand when you say it's more trouble than it's worth lol. After reading your response, I'd rather just do what I can to stop desyncing it lol.

If it helps. I'm not using the very first ds4, but maybe the second gen one? Not the latest. (The first one that had the lightbar bleed).

Thank you again! I don't foresee myself giving up mission control, as the value still outweighs the one pairing con.

I guess in my particular use case, I only use the controller with my sysnand and emummc, so maybe if there was a way for me to get the databases in sync without requiring a full recreation of emummc would be cool. I feel like this might be more of a feature for atmosphere rather than mission control though?

EDIT: ofcourse after I type up my experience, it works in record time on second try just now lol.
 
Last edited by silvershadow,

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
467
Trophies
0
Age
36
XP
2,605
Country
Australia
If it helps. I'm not using the very first ds4, but maybe the second gen one? Not the latest. (The first one that had the lightbar bleed).
The v2 DS4 controller is actually the more reliable of the two. That said, I have two of them and one will pair almost instantly every time, whereas the other one can sometimes take a couple of tries. I've put it down to hardware variations.

I guess in my particular use case, I only use the controller with my sysnand and emummc, so maybe if there was a way for me to get the databases in sync without requiring a full recreation of emummc would be cool. I feel like this might be more of a feature for atmosphere rather than mission control though?
I intend to add database export/import a feature when I finally finish writing the companion homebrew applet for Mission Control. Ideally, I would like to have a configuration option to redirect the pairing database to a file on SD card so that this could take place automatically. To do so, however, would require a MITM of the set service. Unfortunately this is not possible because Atmosphere itself already MITM's this service. I have raised this issue with SciresM in the past and he believed this was outside of the scope of something Atmosphere should be handling.
For now there are existing solutions for synchronising the bluetooth devices if you need to do it. Be warned though, that this involves save editing so there is some risk involved in doing so (there is potential to corrupt a system save if something goes wrong) My proposed solution would do it via function calls to the set service, which doesn't carry any corruption risk.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: https://youtube.com/shorts/WOppJ92RgGU?si=KE79L6A_3jESsGQM