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.54k stars 139 forks source link

Change predetermined Pro controller for Joy-con? #108

Open Linkmanss opened 4 years ago

Linkmanss commented 4 years ago

Is there any way to change Pro controller pair to Joy con pair? It would be great for games like SSBU, Pokemon Let's go or Super Mario Party for example... I'm using Wiimote only

Thanks btw 😄

ndeadly commented 4 years ago

Not yet. Someone has already asked about this, but it must have been on reddit or something because I can't find it in the issue tracker. It's something I will try to add at some point when I have a means to add per-controller configurations. Needs a bit of research to see if it's possible to change it on the fly or not.

Out of curiosity, what do you gain in these games from identifying the controller as a Joycon vs the current pro controller?

aaisaa commented 4 years ago

Out of curiosity, what do you gain in these games from identifying the controller as a Joycon vs the current pro controller?

the mario party and pokemon lets go game only works with joycons

Linkmanss commented 4 years ago

Well, I don't know much how it works, but in Smash, you should be able to move, because the d-pad is used for taunt, and maybe changing that you could fix it and use it as a Wiimote in Super Smash Bros Brawl And about Pokemon,it just can be played with one JoyCon (R/L) or Handheld Switch, but also it needs motion control and I know that could not be possible for now, but is just an Idea

Sorry if I confused you, and thanks for reply ☺

El lun., 5 oct. 2020 a las 19:29, aaisaa (notifications@github.com) escribió:

Out of curiosity, what do you gain in these games from identifying the controller as a Joycon vs the current pro controller? the mario party and pokemon lets go game only works with joycons

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ndeadly/MissionControl/issues/108#issuecomment-703923508, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARIBATK6UZX65MBV3ZDW7QDSJJCFBANCNFSM4SD36H3A .

ndeadly commented 4 years ago

Ah ok, so you would want the wiimote to behave as a joycon with the dpad mapped as the analog stick?

I think the joycon aspect is straightforward enough, but I would need to have a framework in place to be able to specify which controllers to do this with, and how to deal with the control mappings.

Linkmanss commented 4 years ago

I would not know how it works, since the joycon can be mapped horizontally as well as vertically, thus changing the orientation of the stick (X and Y axis) and the buttons, although the buttons can be remap from the options which would not be a problem

Thx ✌

ndeadly commented 4 years ago

I think the joycons only work in the vertical orientation when linked as a single controller and horizontal when used alone. I still need to figure out how to make them appear as linked, but I imagine that's how I would present any full-key gamepads, and something like a wiimote would probably be presented as a left joycon or something. I don't think there would ever be a need to change orientation in the emulated controller.

ndeadly commented 4 years ago

Unless these games will only work with a single joycon? Then I guess everything is a left joycon

impeeza commented 4 years ago

I think the joycons only work in the vertical orientation when linked as a single controller and horizontal when used alone. I still need to figure out how to make them appear as linked, but I imagine that's how I would present any full-key gamepads, and something like a wiimote would probably be presented as a left joycon or something. I don't think there would ever be a need to change orientation in the emulated controller.

Man, you rock. Thanks a lot for all your effort

ghost commented 3 years ago

Let's Go lets you use either a left joycon or a right joycon, and it has a two-player mode that can be accessed by shaking a second joycon paired to the console.

I'm not sure if the game allows using two of the same side joycon for this, but just in case it might be good to have the option to choose whether a controller is a left joycon or a right joy con. In case certain games were to specifically expect a left joycon or a right joycon for something.

Wiimote d-pad mapped as analog stick would be nice for those who would like to only use the Wiimote itself, but personally I would actually really like if Wiimote + nunchuk could be treated as one joycon, with the nunchuk's analog stick mapped to the joycon's stick. With eventual motion control support in the future, and throwing by swinging the Wiimote, this would be the best control scheme for that game, as far as I'm concerned.

BNTFryingPan commented 2 years ago

i noticed the experiment/identify-as-joycon branch and was going to try compiling it myself (because there is no downloadable version obviously), but couldnt figure out how to get the toolchain working (although i didnt spend very long because i was tired lol). i was just going to try it to see if it worked because i dont know what goes into updating to a new switch firmware version (just recompiling with newer atmosphere libs or something more) and i noticed that the last commit was almost a year ago. i only really wanted it for switch sports as the above 2 closed issues are requesting. i am aware that it wouldnt have some of the things you have said you wanted to do (config applet, etc) but i dont mind manually adjusting the mapping in the code if im able to compile it (looking at https://github.com/ndeadly/MissionControl/blob/experiment/identify-as-joycon/mc_mitm/source/controllers/wii_controller.cpp#L182 it doesnt look too difficult for me). basically what i want to know is what (if anything) would i need to do in order to compile that branch to run on the latest switch firmware and be able to use a wii remote and nunchuck as a pair of joycons instead of a pro controller

ndeadly commented 2 years ago

@LeotomasMC that branch is rather old and it is highly unlikey it still works. At the very least you would need to rebase it on top of the current develop branch in order to get it to compile for the current libstratosphere. @Banz99 has done some further work on this for me based on that branch that is more up to date, although motion controls have not yet been implemented properly for joycon mode. It seems the motion data format is different than that of the Pro Controller and doesn't seem to match up with the documented information on the controllers. It's possible we're looking at some newer undocumented mode that's only used by joycons. Work on this has been put on hold for now as we were both tired of working on motion controls stuff and I wanted to move onto focussing on Bluetooth LE support. If you are a competent programmer and/or have experience with working with low level data, this would make a great contribution to the project. If you are interested you can reach out to me on discord at ndeadly#5317 for more info.