Homebrew RELEASE HID-Mitm: Rebind buttons and use custom gamepads on your switch!

jakibaki

Well-Known Member
OP
Member
Joined
Mar 3, 2017
Messages
296
Trophies
0
Age
26
XP
1,826
Country
Germany
hid-mitm

Warning: This project is unmaintained (due to both a lack of motivation and there being much much better ways to achieve this) and broken on current atmosphere.

If anyone wants to pick this project up feel free to ping me in atlasnx and I'll happily answer questions about the code.

This is the official discussion-thread of hid-mitm.

https://github.com/jakibaki/hid-mitm

Disclaimer:
This sysmodule is in beta! Problems are to be expected. If you encounter any that aren't listed in the known issues section please report it here if nobody else did already.

Features
  • Rebind buttons on your gamepads.

  • Use custom gamepads on your nintendo switch by using your phone/pc as a proxy.
Setup
While hid-mitm will work perfectly fine on stock atmosphere and possibly reinx the recommended setup is to download the latest Kosmos since it comes preconfigured with the awesome Kosmos Toolbox which allows you to easily configure hid-mitm.

On Kosmos it's just a matter of opening the Kosmos Toolbox, enabling the hid-mitm sysmodule and rebooting.

On Atmosphere, installing hid-mitm can be done by dragging the content of the release.

No help for ReiNX is provided, if it runs that's fine but if you run into problems please try on a supported cfw before reporting.

No support whatsoever for sxos.

Usage
Rebinding buttons
Simply open the Kosmos toolbox, go to the sysmodule menu and continue to the hid-mitm menu from there (it's a simple button-press explained in the bottom bar)

After that a screen will pop up in which you can select the button you want to rebind and then what you want it to rebind for.
After you're done, be sure to touch the button in the middle to save your changes.

You can also configure it manually by editing the /modules/hid_mitm/config.ini file.

Custom gamepads
The way that custom gamepads work with hid-mitm is not by directly connecting the gamepad to your switch but by connecting your gamepad to your phone (and experimentally pc) and then running the hid-mitm app which then in turn sends the input to your switch which will recognize it as an additional pro-controller.

Download the companion_apps.zip from the release page.

Android
  • Install the hid-mitm.apk from the zip on your phone.
  • Make sure that your switch has hid-mitm enabled and is connected to the same network as your phone. You can use 90dns if you don't want your switch to connect to nintendos servers.
  • Connect your gamepad to your phone
  • Enter the ip-address of your nintendo switch in the hid-mitm app (it can be found in the network settings) and press "connect"
  • Your switch now should now pick up your gamepad as an additional pro-controller! :)
iOS
  • Install the hid-mitm.ipa from the zip on your phone. You can use Cydia Impactor for that, don't worry it will work just fine even without a jailbreak.
  • Make sure that your switch has hid-mitm enabled and is connected to the same network as your phone. You can use 90dns if you don't want your switch to connect to nintendos servers.
  • Connect your gamepad to your phone (please note that apple is rather restrictive with the choice of gamepads that they allow you to use)
  • Enter the ip-address of your nintendo switch in the hid-mitm app (it can be found in the network settings) and press "connect"
  • Your switch now should now pick up your gamepad as an additional pro-controller! :)
As a workaround to iOS not recognizing a plus and minus button l1+l2+r1+r2+x will result in a plus and l1+l2+r1+r2+dpad-left in a minus.

Hid-mitm can also easily be repurposed to do scripted inputs (for example a "twitch plays").
Check out the input_pc.py for some reference of how to talk to hid-mitm.

Known issues
  • In some games the "connect gamepad" dialog will pop up every few minutes when playing in multiplayer with a custom gamepad connected
  • There are various problems that happen if hid-mitm and sys-ftpd are enabled at the same time.
  • Some phones have a terrible bluetooth connection which will result in input-delay if using bluetooth gamepads. I can't do anything about that, that's an issue with android.
  • On some wifi-networks iPhones have problems which will result in terrible input delay. You can work around this by just opening a hotspot on your phone and letting the switch connect to that. If you don't want your switch to use up mobile data be sure to enable 90dns.
  • Some gamepads won't have their inputs mapped correctly on android.
    If anyone who has experience with android development wants to get that fixed by adding some kind of "setup interface" it would be greatly appreciated.
  • Tetris 99 doesn't want to recognize custom gamepads for some reason
  • The switch doesn't seem to accept using the custom gamepad as "activity" so the screen will automatically fade out after a while. You can work around that by turning off the auto-screen-off feature in the system settings.
Planned features
  • Support for connecting multiple custom gamepads
  • Support for motion controls
  • (maybe) vibration support
  • Support for "disguising" gamepads as something else. To allow for example to play pokemon with a pro-controller.
Support
The best way to get your questions answered is by asking in the AtlasNX discord.
 
Last edited by jakibaki,

masagrator

The patches guy
Developer
Joined
Oct 14, 2018
Messages
6,305
Trophies
3
XP
12,097
Country
Poland
It's possible in the future to make whole app working in terminal? Then it could be possible to make something small and cheap to work.
 

Kubas_inko

"Something funny goes here."
Member
Joined
Feb 3, 2017
Messages
6,324
Trophies
1
Age
24
Location
I gues on earth.
XP
5,215
Country
Czech Republic
This seems like a good thread to ask. Is connecting 3rd party controller directly to switch possible? (So that you dont need to use any middle device) Like custom HID for controllers right over bluetooth.
 

LightBeam

Well-Known Member
Member
Joined
Oct 1, 2018
Messages
988
Trophies
0
XP
2,473
Country
France
How are you supposed to use that on PC ? I would like to use my SNES mini controller but I can't manage to connect my wiimote on my Switch and it would be more convenient for me to get this working on Windows
 

Bakugo

Active Member
Newcomer
Joined
Dec 28, 2016
Messages
33
Trophies
0
Website
steamid.ml
XP
572
Country
United States
Very well done, I've been waiting for something like this. Surprised it took so long.

Planned features: Support for motion controls

How long do you think it will take to add this? If the answer is more than a week, could you share the methods you used for debugging while developing this? I'd like to try adding it myself.
 

jakibaki

Well-Known Member
OP
Member
Joined
Mar 3, 2017
Messages
296
Trophies
0
Age
26
XP
1,826
Country
Germany
Very well done, I've been waiting for something like this. Surprised it took so long.



How long do you think it will take to add this? If the answer is more than a week, could you share the methods you used for debugging while developing this? I'd like to try adding it myself.
Probably will be a while, I won't have that much free time anymore for a while soon.

Well for debugging I just have a small script builds the project, boots the switch over into memloader and copies it over.
If you need some kind of debug-output fatals are generally useful.
 

LapCheong

Well-Known Member
Member
Joined
Mar 6, 2019
Messages
219
Trophies
0
XP
519
Country
Australia
Xbox one s bluetooth to my pc then to my switch works almost perfectly

The left thumb button is tied to the xbox logo button for some reason.
 

hellogbatemp

Active Member
Newcomer
Joined
May 19, 2018
Messages
44
Trophies
0
Age
38
XP
130
Country
France
Nice job!
the ps4 controller works perfectly, pair with the pc.BUT if I minimize the window "HID" the controller no longer work and
can we configure the "home" button?
thanks
 
Last edited by hellogbatemp,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Quincy @ Quincy:
    Usually when such a big title leaks the Temp will be the first to report about it (going off of historical reports here, Pokemon SV being the latest one I can recall seeing pop up here)
  • K3Nv2 @ K3Nv2:
    I still like how a freaking mp3 file hacks webos all that security defeated by text yet again
  • BigOnYa @ BigOnYa:
    They have simulators for everything nowdays, cray cray. How about a sim that shows you playing the Switch.
  • K3Nv2 @ K3Nv2:
    That's called yuzu
    +1
  • BigOnYa @ BigOnYa:
    I want a 120hz 4k tv but crazy how more expensive the 120hz over the 60hz are. Or even more crazy is the price of 8k's.
  • K3Nv2 @ K3Nv2:
    No real point since movies are 30fps
  • BigOnYa @ BigOnYa:
    Not a big movie buff, more of a gamer tbh. And Series X is 120hz 8k ready, but yea only 120hz 4k games out right now, but thinking of in the future.
  • K3Nv2 @ K3Nv2:
    Mostly why you never see TV manufacturers going post 60hz
  • BigOnYa @ BigOnYa:
    I only watch tv when i goto bed, it puts me to sleep, and I have a nas drive filled w my fav shows so i can watch them in order, commercial free. I usually watch Married w Children, or South Park
  • K3Nv2 @ K3Nv2:
    Stremio ruined my need for nas
  • BigOnYa @ BigOnYa:
    I stream from Nas to firestick, one on every tv, and use Kodi. I'm happy w it, plays everything. (I pirate/torrent shows/movies on pc, and put on nas)
  • K3Nv2 @ K3Nv2:
    Kodi repost are still pretty popular
  • BigOnYa @ BigOnYa:
    What the hell is Kodi reposts? what do you mean, or "Wut?" -xdqwerty
  • K3Nv2 @ K3Nv2:
    Google them basically web crawlers to movie sites
  • BigOnYa @ BigOnYa:
    oh you mean the 3rd party apps on Kodi, yea i know what you mean, yea there are still a few cool ones, in fact watched the new planet of the apes movie other night w wifey thru one, was good pic surprisingly, not a cam
  • BigOnYa @ BigOnYa:
    Damn, only $2.06 and free shipping. Gotta cost more for them to ship than $2.06
    +1
  • BigOnYa @ BigOnYa:
    I got my Dad a firestick for Xmas and showed him those 3rd party sites on Kodi, he loves it, all he watches anymore. He said he has got 3 letters from AT&T already about pirating, but he says f them, let them shut my internet off (He wants out of his AT&T contract anyways)
  • K3Nv2 @ K3Nv2:
    That's where stremio comes to play never got a letter about it
  • BigOnYa @ BigOnYa:
    I just use a VPN, even give him my login and password so can use it also, and he refuses, he's funny.
  • BigOnYa @ BigOnYa:
    I had to find and get him an old style flip phone even without text, cause thats what he wanted. No text, no internet, only phone calls. Old, old school.
  • Psionic Roshambo @ Psionic Roshambo:
    @BigOnYa, Lol I bought a new USB card reader thing on AliExpress last month for I think like 87 cents. Free shipping from China... It arrived it works and honestly I don't understand how it was so cheap.
    Psionic Roshambo @ Psionic Roshambo: @BigOnYa, Lol I bought a new USB card reader thing on AliExpress last month for I think like 87...