Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Hid-mitm Switch: Difference between revisions

From GameBrew
(Created page with "{{Infobox Switch Homebrews |title=HID-Mitm |image=hidmitmswitch.png |description=Rebind buttons and use custom gamepads on your switch! |author=jakibaki |lastupdated=2019/07/22 |type=System Tools |version=8.1 |license=GPL-2.0 |download=https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch.7z |website=https://gbatemp.net/threads/hid-mitm-rebind-buttons-and-use-custom-gamepads-on-your-switch.535095/ |source=https://github.com/jakibaki/hid-mitm |donation= }} {{#seo: |titl...")
 
No edit summary
Line 1: Line 1:
{{Infobox Switch Homebrews
{{Infobox Switch Homebrews
|title=HID-Mitm
|title=HID-Mitm
|image=hidmitmswitch.png
|image=hidmitmnx.png
|description=Rebind buttons and use custom gamepads on your switch!
|description=Rebind buttons and use custom gamepads on your Switch.
|author=jakibaki
|author=jakibaki
|lastupdated=2019/07/22
|lastupdated=2019/07/22
|type=System Tools
|type=System Tools
|version=8.1
|version=0.1.2
|license=GPL-2.0
|license=GPL-2.0
|download=https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch.7z
|download=https://dlhb.gamebrew.org/switchhomebrews/hidmitmnx.7z
|website=https://gbatemp.net/threads/hid-mitm-rebind-buttons-and-use-custom-gamepads-on-your-switch.535095/
|website=https://gbatemp.net/threads/hid-mitm-rebind-buttons-and-use-custom-gamepads-on-your-switch.535095/
|source=https://github.com/jakibaki/hid-mitm
|source=https://github.com/jakibaki/hid-mitm
|donation=
|donation=
}}
}}
{{#seo:
HID-Mitm is a sysmodule mitming the Horizon hid (human interface device) services to allow using unsupported Bluetooth-based HID devices (e.g. a Dualshock 4 controller) on the Nintendo Switch.
|title=Switch Homebrew Apps (System Tools) - GameBrew
 
|title_mode=append
'''Note:''' This project is unmaintained and broken on current Atmosphere.
|image=hidmitmswitch.png
 
|image_alt=HID-Mitm
==Features==
}}
*Rebind buttons on your gamepads.
{{cleanup|article|Needs cleanup}}
*Use custom gamepads on your nintendo Switch by using your phone/pc as a proxy.
Rebind buttons and use custom gamepads on your switch!
 
==Installation==
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.
 
==User guide==
===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 <code>/config/hid_mitm/config.ini</code> 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 [https://github.com/jakibaki/hid-mitm/releases release page].
 
====Android====
*Install the <code>hid-mitm.apk</code> 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 <code>hid-mitm.ipa</code> 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! :)


==Media==
As a workaround to iOS not recognizing a plus and minus button <code>l1+l2+r1+r2+x</code> will result in a plus and <code>l1+l2+r1+r2+dpad-left</code> in a <code>minus</code>.
<youtube></youtube>


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


==Screenshots==
==Screenshots==
https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch-01.png
https://dlhb.gamebrew.org/switchhomebrews/hidmitmnx2.png
https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch-02.png
 
https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch-03.png
==Compatibility==
https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch-04.png
Supports up to 8.1.
https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch-05.png
 
https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch-06.png
==Known issues==
https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch-07.png
*In some games the "connect gamepad" dialog will pop up every few minutes when playing in multiplayer with a custom gamepad connected
https://dlhb.gamebrew.org/switchhomebrews/hidmitmswitch-08.png
*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.


==Changelog==
==Changelog==
'''v.1.0'''
'''v0.1.2'''
* First Release.
*No new features, just a fix for 8.1 until some proper hid-mitm alternative comes along (the approach used in hid-mitm is obsolete)
*Thanks to everyone in the 8.1 support issue for figuring that out!
*Thanks to @friedkeenan's great contributions hid-mitm has support for setting deadzones now https://github.com/jakibaki/hid-mitm/blob/master/hid_mitm/config.ini#L4
 
'''v0.1.1'''
*This release is just a hotfix for 8.0 support being broken.
*Also moves the config path from /modules to /config.


== External links ==
== External links ==
* Gbatemp - https://gbatemp.net/threads/hid-mitm-rebind-buttons-and-use-custom-gamepads-on-your-switch.535095/
* GitHub - https://github.com/jakibaki/hid-mitm
* Github - https://github.com/jakibaki/hid-mitm
* GBAtemp - https://gbatemp.net/threads/hid-mitm-rebind-buttons-and-use-custom-gamepads-on-your-switch.535095/
* Reddit -

Revision as of 03:10, 16 April 2023

HID-Mitm
Hidmitmnx.png
General
Authorjakibaki
TypeSystem Tools
Version0.1.2
LicenseGPL-2.0
Last Updated2019/07/22
Links
Download
Website
Source

HID-Mitm is a sysmodule mitming the Horizon hid (human interface device) services to allow using unsupported Bluetooth-based HID devices (e.g. a Dualshock 4 controller) on the Nintendo Switch.

Note: This project is unmaintained and broken on current Atmosphere.

Features

  • Rebind buttons on your gamepads.
  • Use custom gamepads on your nintendo Switch by using your phone/pc as a proxy.

Installation

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.

User guide

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 /config/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.

Screenshots

hidmitmnx2.png

Compatibility

Supports up to 8.1.

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.

Changelog

v0.1.2

  • No new features, just a fix for 8.1 until some proper hid-mitm alternative comes along (the approach used in hid-mitm is obsolete)
  • Thanks to everyone in the 8.1 support issue for figuring that out!
  • Thanks to @friedkeenan's great contributions hid-mitm has support for setting deadzones now https://github.com/jakibaki/hid-mitm/blob/master/hid_mitm/config.ini#L4

v0.1.1

  • This release is just a hotfix for 8.0 support being broken.
  • Also moves the config path from /modules to /config.

External links

Advertising: