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.51k stars 138 forks source link

Update for HOS 12.0.0 #223

Closed RebelLion420 closed 3 years ago

RebelLion420 commented 3 years ago

Currently cannot boot with this module installed due to the newer firmware update. It's been released for almost a week and Atmosphere and Hekate were updated yesterday, so I thought I should open this in case you, the dev, were not aware. I use my DS4 controller almost exclusively (aside from joycons) so this is concerning for me. Can provide whatever info/dumps are needed

Masamune3210 commented 3 years ago

They are aware, im sure. Most sysmodules require modification to work with the things added and changed in the latest hos and atmos, especially stuff like this that involves redirection. Plus iirc, they stated in another issue that the Bluetooth driver in 12.0.0 needed looked at

ndeadly commented 3 years ago

Yes, as an active member of the scene I'm well aware of the situation. Please keep in mind that as mission control depends on atmosphere to run, I'm not able to begin working on an update after a new firmware release until the atmosphere update drops.

Sometimes we get lucky and all that's required is a rebuild with the updated libstratosphere. This time around there have been some big changes to the bluetooth module under the hood. Nintendo has pretty much rewritten all the code that connects the IPC interface to the bluetooth stack, changing up all the BSA event Ids and their data in the process. I've spent most of the past couple of days looking at it. Currently third party controllers are returning status codes I don't understand and failing in a variety of ways. This could take some time as I'll need to figure out the pairing process again, this time without the help of any publicly available symbols.

That said, I may consider making an interim release to support atmosphere 0.19.0 on firmware < 12.0.0 if there's enough demand for it, as that basically just requires recompilation.

impeeza commented 3 years ago

Cheers @ndeadly is a lot of work, we thank you a lot for all your effort.

RebelLion420 commented 3 years ago

Props to your hard work. I've only messed with Linux and Android kernels so I havent the faintest idea of what's required for you to figure out, and I don't mean to sound rude or entitled. This is my most important module and I'm fairly new to the switch scene, creating an issue in this case is something I'm accustomed to. Will be waiting patiently for any breakthroughs 🙏

ndeadly commented 3 years ago

No problem. While I appreciate people's willingness to report issues, it's pretty much expected an update will be required upon a new firmware/atmosphere release. Boot issues are common and will not go unnoticed, reporting them isn't neccesary :p

Borrajo commented 3 years ago

Currently cannot boot with this module installed due to the newer firmware update. It's been released for almost a week and Atmosphere and Hekate were updated yesterday, so I thought I should open this in case you, the dev, were not aware. I use my DS4 controller almost exclusively (aside from joycons) so this is concerning for me. Can provide whatever info/dumps are needed

For play any game you dont need the last firmware. please downgrade to AMS 0.18.1 and firmware 11.0.1 and voilá. Everything solved

ndeadly commented 3 years ago

Just a little status update. I've been able to get my Xbox One controller connecting and working again, so at least the HID side of things isn't as broken as I thought. My other controllers seem to be rejected during pairing now though and I'm not really sure why.

ndeadly commented 3 years ago

https://github.com/ndeadly/MissionControl/releases/tag/v0.5.0-alpha

impeeza commented 3 years ago

«to appease the masses». You make me smile,. Thanks a lor for your great effort

Diliz commented 3 years ago

That was fast! The 0.5.0-alpha is working pretty well on my side with a ps4 controller, using it with bluetooth, thanks for the great work đź‘Ť

ndeadly commented 3 years ago

As it turns out, pairing may not be as broken as I thought. I was just able to get my DS4 controllers paired with the 0.5.0 alpha release. I think something has changed that has made the pairing more sensitive to timing deviations, so it was failing for me with the added latency of the debug logging I was using when testing. Please let me know if other controllers can be paired or not. Wii controllers are definitely not working at the moment though, as I need to fix up a couple of IPC calls for 12.0.0

magpte commented 3 years ago

As it turns out, pairing may not be as broken as I thought. I was just able to get my DS4 controllers paired with the 0.5.0 alpha release. I think something has changed that has made the pairing more sensitive to timing deviations, so it was failing for me with the added latency of the debug logging I was using when testing. Please let me know if other controllers can be paired or not. Wii controllers are definitely not working at the moment though, as I need to fix up a couple of IPC calls for 12.0.0

WiiU Pro did not work either here.

ndeadly commented 3 years ago

WiiU Pro did not work either here.

Yeah that's expected. I use Wii controller as a blanket term for all Wii/WiiU controllers, as they all use the same protocol.

ndeadly commented 3 years ago

@DownTriangle did it work previously or are you a new user? Some older PS4 controllers can take a few tries before they will work. This has always been the case even on older firmwares

ndeadly commented 3 years ago

Ok, so maybe there are still pairing issues for DS4 then. I will have to dig further into this when I have time. As a workaround, you can always downgrade your firmware with daybreak, pair the controller and upgrade back to 12.0.0 (or keep it on the lower firmware)

Borrajo commented 3 years ago

DownTriangle if you want to play, you should downgrade to firmware 11.0.1, and then download atmosphere 0.18.1 (on github are all releases). And use missionControl 0.4, there are no excuses for that.

Get Outlook para Androidhttps://aka.ms/AAb9ysg


From: ndeadly @.> Sent: Friday, April 16, 2021 4:49:30 AM To: ndeadly/MissionControl @.> Cc: Manuel Borrajo @.>; Comment @.> Subject: Re: [ndeadly/MissionControl] Update for HOS 12.0.0 (#223)

Ok, so maybe there are still pairing issues for DS4 then. I will have to dig further into this when I have time. As a workaround, you can always downgrade your firmware with daybreak, pair the controller and upgrade back to 12.0.0 (or keep it on the lower firmware)

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/ndeadly/MissionControl/issues/223#issuecomment-820989037, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACBMXDAZPKHT4DWKST4LA5DTI7TYVANCNFSM42ZWHBHA.

ndeadly commented 3 years ago

@Borrajo there's no need to use older atmosphere or mission control releases, the problem is only with the new console firmware. The 0.5.0 code should be fine on older firmwares - it was tested on 11.0.1 and pretty much ready for release before 12.0.0 dropped.

Borrajo commented 3 years ago

Ok, sorry. I tested AMS 0.19.1 and missionControl 0.4.0 and get a crash. For that, I said "downgrade all".

Get Outlook para Androidhttps://aka.ms/AAb9ysg


From: ndeadly @.> Sent: Friday, April 16, 2021 7:46:42 AM To: ndeadly/MissionControl @.> Cc: Manuel Borrajo @.>; Mention @.> Subject: Re: [ndeadly/MissionControl] Update for HOS 12.0.0 (#223)

@Borrajohttps://github.com/Borrajo there's no need to use older atmosphere or mission control releases, the problem is only with the new console firmware. The 0.5.0 code should be fine on older firmwares - it was tested on 11.0.1 and pretty much ready for release before 12.0.0 dropped.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/ndeadly/MissionControl/issues/223#issuecomment-821089534, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACBMXDFXAX7PACG2PHXR5B3TJAIRFANCNFSM42ZWHBHA.

ndeadly commented 3 years ago

Yeah, atmosphere updates sometimes break the ABI used by existing releases and require recompilation with an updated libstratosphere. This is a separate issue to the breaking changes introduced in 12.0.0. I try to keep mission control as backwards compatible as possible, so you should be able to run it on any firmware version (in theory, this is not well tested on old firmwares) but you'll typically always want the latest atmosphere/mission control releases. As long as the mission control release is newer than a given atmosphere release they should be compatible.

Wrexial commented 3 years ago

https://github.com/ndeadly/MissionControl/releases/tag/v0.5.0-alpha

12.0.0|AMS 0.19.0, MC v0.5.0 linked above worked for my DS4 with no problems

ndeadly commented 3 years ago

@Wrexial pairing too, or just reconnecting after the update? I've now discovered mine were able to pair on my emummc, but I'm still not having any luck on sysnand. Not really sure what the difference could be there

Wrexial commented 3 years ago

@ndeadly I completely cleaned the switch's sd card when i updated to AMS 0.19, so pairing and connecting. I'm going to update to AMS 0.19.1 later tonight, so I'll reclear the switch's sd card.

ndeadly commented 3 years ago

@Wrexial "completely cleaned" as in factory reset, or just deleting things from your sd card? Just deleting from sd won't affect your consoles bluetooth pairing database, which is stored on the nand. By pairing I mean going to the Change Grip/Order screen and holding PS + SHARE until the controller shows as paired. If you're able to do this on the new firmware then it is indeed working, if you're just hitting PS and it's connecting then you may be relying on the old pairing data from before the 12.0.0 update.

Wrexial commented 3 years ago

@ndeadly ahh no, i didn't factory reset the nand, only the sd card, i did do the Change Grip/Order -> PS + SHARE though, but it might have been saved in the nand since it's the same controller+switch combo.

ndeadly commented 3 years ago

Yeah it will have been saved to the nand from before, but if you did the pairing process above properly then it sounds like it's working for you. It will just replace the old pairing data when it succeeds. You can clear the pairing database and try again if you really want to be sure it's not using old data, but I have no reason not to believe you

eradicatinglove commented 3 years ago

hey @ndeadly i was wondering why i couldnt build the mission control. i was like "i updated libnx and atmosphere libs and mission control builds but doesnt let HOS boot. big changes but much appreciated on your time and work.

ndeadly commented 3 years ago

@eradicatinglove are you building the develop branch? That's what the 0.5.0-alpha is based on. If you build master you're essentially building 0.4.1, which won't work with the latest atmosphere unless you switched it to use the latest commits to Atmosphere-libs. Do you get at error on boot or does it just hang?

eradicatinglove commented 3 years ago

@ndeadly i was using the build master. i hadnt seen the 5.0 alpha until today. and yea after it was built it would just hang on black screen after atmosphere logos. i did update atmosphere libs but im still total noob at this and trying to figure out what im looking at haha. barely learning. i will try the development now. im on 12.0.0 with atmosphere 19.1. i saw 5.0 description must use 19.0ams to work with this. is that still a thing?

ndeadly commented 3 years ago

Did you follow the build instructions in the readme? If you run git checkout develop before those instructions, you should be building all the correct versions for 0.5.0. Hard to say exactly what the state of your build is without seeing exactly the steps you took to build, but a boot hang almost certainly indicates something is wrong.

i saw 5.0 description must use 19.0ams to work with this. is that still a thing?

atmosphere 0.19.0 is just the minimum version required. Newer versions are typically ok too unless breaking changes were introduced to libstratosphere. 0.19.1 is fine

eradicatinglove commented 3 years ago

ahh ok no i hadnt done any of that like you mentioned. i just git clone -recurse-submodule (link) but it was on the (master build) not developer. im trying out the developer version right now. as of right now im following the steps but clicked on developer branch on git. i did not use {git checkout develop}. but i did see im on developer branch and there im using the same build steps. currently building ams libs and libnx had no issues. im building on a 1tb external ssd using ubuntu and its slow as hell but see how it goes. thanks for the input

ndeadly commented 3 years ago

Yeah, building takes quite a while, especially for Atmosphere-libs. If you're not already doing it, you should add -j$(nproc) to your make commands to use all cores of your CPU. This can make a huge difference if your CPU has a decent number of cores.

eradicatinglove commented 3 years ago

@ndeadly hey man hope im not a bother. but when building libnx from your link (git clone) i get an error. i thinks its because i have libnx set up already. before i tried mission control i had done other stuff. and i have libnx 4.0.0-1 on my devkit pro. here is a copy what my error looks like. does this create a problem?

make[2]: '/home/eradicatinglvoe/MissionControl/libnx/nx/lib/libnxd.a' is up to date. mkdir -p /opt/devkitpro/libnx bzip2 -cd libnx-3.3.0.tar.bz2 | tar -xf - -C /opt/devkitpro/libnx tar: default_icon.jpg: Cannot open: File exists tar: switch_rules: Cannot open: File exists tar: switch.ld: Cannot open: File exists tar: switch.specs: Cannot open: File exists tar: Exiting with failure status due to previous errors make[1]: [Makefile:108: install] Error 2 make[1]: Leaving directory '/home/eradicatinglvoe/MissionControl/libnx/nx' make: [Makefile:5: install] Error 2

ndeadly commented 3 years ago

@eradicatinglove this is getting a bit off-topic for this issue. If you'd like support on the matter you can open a thread in the discussions section of this page, or contact me on Discord at ndeadly#5317

thaikhoa commented 3 years ago

Playstation 5 controller works just fine on 0.5 with rumble. New pairing to the system.

tiliarou commented 3 years ago

12.0.1 was released, with updates of bt module :(

impeeza commented 3 years ago

Poor ndeadly just start to understand and now the firmware change. Go buddy.

thaikhoa commented 3 years ago

MissionControl 0.5 works on fw 12.0.1 btw. Tested with PS4 and PS5 controller, already paired or new paired.

ndeadly commented 3 years ago

@tiliarou I don't think it changes anything API-wise that would break mission control. This might actually be a good thing. I heard that people have had pairing issues with official controllers with 12.0.0, so the issue with mission control could actually have been a bug in official software that they've now fixed.

I can't install the update and check right now, so if anyone who has seen pairing issues since the update wants to confirm if anything has changed for the better, please report here.

eradicatinglove commented 3 years ago

I'll update right now and check it out. My ps4 wouldn't connect

eradicatinglove commented 3 years ago

update: after update my ps4 controller is now working. along with my xbox controller which was working already. but my ps4 is definitely working . good job @ndeadly

currently on : 12.0.1 ams 19.1

Demonslayerx8 commented 3 years ago

I can confirm that my DS4 and DS5 works on 12.0.1 unlike with 12.0.0, wouldn't pair at all til I did system update.

ndeadly commented 3 years ago

Thanks for the reports. This is starting to sound promising

gianemi2 commented 3 years ago

I can also confirm that PS5 controller wasn't working on 12.0.0 and now is working on 12.0.1. Cannot believe that a "various stability fix" was a various stability fix for real.

GucciUchi commented 3 years ago

Can confirm that PS4 controller works newly paired on 12.0.1 when it didn't on 12.0.0 Edit: Can also confirm that XB1S/X controller works newly paired under same setup

3DSBricker commented 3 years ago

It pairs perfectly but my Xbox One controller clicks out of itself. It clicks on the Switch's minus button which is very annoying in a game.

ndeadly commented 3 years ago

@3DSBricker many other people use xbox controllers without issue. I suspect that you either need to update your controller firmware (older firmwares use a different input data format that isn't supported), or there's a problem with that button on your controller

3DSBricker commented 3 years ago

There is no newer firmware and it works perfectly fine on my Xbox and on Firmware 11.0.0.

ndeadly commented 3 years ago

Which firmware version does it report? Sometimes the Windows app reports incorrectly that there are no updates. I wouldn't expect there to be any issues on an actual Xbox because a) Microsoft are in a position where they can support any number of past and future formats, and b) it doesn't use bluetooth when communicating with the console.

I can't think of anything that should have changed how buttons are mapped between 11.0.0 and the current firmware. Do you have any other controllers connected wirelessly? Do the button presses happen sporadically by themselves or when you press other buttons? How have you confirmed all of this?

If you genuinely believe this is an issue with the software, please open a new github issue as this is starting to get off-topic. I would advise you use the Test Controller Buttons feature to check that all buttons are being mapped correctly and whether you are seeing "phantom" button presses.

3DSBricker commented 3 years ago

Sometimes out of nowhere it clicks plus or minus (still don't know which), I use nx-btred. I use the controller on my Xbox One and laptop via Bluetooth. It did not happen with Firmware 11.0.0, the previous version (release version) of Mission Control and no nx-btred.

ndeadly commented 3 years ago

Again, please open a separate issue to further this discussion, and address the questions I asked above. I do not observe these issues with my own Xbox controller and cannot help you unless you help me narrow down the cause. Also, does it still occur without nx-btred installed?