Nintendo Switch Pro Controller Support

Talk about anything concerning the source code.
Post Reply
histamine
Posts: 5
Joined: Tue Sep 15, 2020 10:01 am

Nintendo Switch Pro Controller Support

Post by histamine »

https://github.com/hisptoot/GIMX-firmwares
https://github.com/hisptoot/GIMX

Working in progress.

Just finished compiling the code.
I'm going to test it on switch tonight.

Update:
It works on switch 10.2.0 system.I can use mouse and keyboard to play doom3.
Currently IMU data is not supported.

For those who want to try:
https://drive.google.com/file/d/18_C9EM ... sp=sharing
Last edited by histamine on Thu Sep 17, 2020 2:06 am, edited 2 times in total.
histamine
Posts: 5
Joined: Tue Sep 15, 2020 10:01 am

Re: Nintendo Switch Pro Controller Support

Post by histamine »

Config File for Doom3 Switch Version

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <controller id="1" dpi="3600" type="switchpad">
    <configuration id="1">
      <trigger type="" id="" name="" button_id="" switch_back="no" delay="0"/>
      <mouse_options_list>
        <mouse name="" id="0" mode="Aiming" buffer_size="1" filter="0.00"/>
      </mouse_options_list>
      <intensity_list/>
      <button_map>
        <button id="abs_axis_10" label="Reload">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="r"/>
        </button>
        <button id="abs_axis_7" label="Use">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="e"/>
        </button>
        <button id="abs_axis_8" label="Crouch">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="c"/>
        </button>
        <button id="abs_axis_9" label="Jump, Double Jump">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="SPACE"/>
        </button>
        <button id="abs_axis_5" label="right">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="1"/>
        </button>
        <button id="abs_axis_6" label="left">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="2"/>
        </button>
        <button id="abs_axis_4" label="down">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="3"/>
        </button>
        <button id="abs_axis_3" label="up">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="4"/>
        </button>
        <button id="abs_axis_14" label="Fire">
          <device type="mouse" id="0" name=""/>
          <event type="button" id="BUTTON_LEFT"/>
        </button>
        <button id="abs_axis_13" label="Flashlight">
          <device type="mouse" id="0" name=""/>
          <event type="button" id="BUTTON_RIGHT"/>
        </button>
        <button id="abs_axis_15" label="Run">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="LSHIFT"/>
        </button>
        <button id="abs_axis_12" label="Next weapon">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="q"/>
        </button>
        <button id="abs_axis_16" label="Crouch">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="v"/>
        </button>
        <button id="abs_axis_11" label="Prev weapon">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="f"/>
        </button>
        <button id="abs_axis_1" label="Menu">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="RETURN"/>
        </button>
        <button id="abs_axis_0" label="PDA">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="BACKSPACE"/>
        </button>
        <button id="abs_axis_2" label="Home">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="ESCAPE"/>
        </button>
      </button_map>
      <axis_map>
        <axis id="rel_axis_0-" label="Strafe left">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="a"/>
        </axis>
        <axis id="rel_axis_1+" label="Move back">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="s"/>
        </axis>
        <axis id="rel_axis_0+" label="Strafe right">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="d"/>
        </axis>
        <axis id="rel_axis_1-" label="Move forward">
          <device type="keyboard" id="0" name=""/>
          <event type="button" id="w"/>
        </axis>
        <axis id="rel_axis_2" label="">
          <device type="mouse" id="0" name=""/>
          <event type="axis" id="x" dead_zone="20" multiplier="8.00" exponent="0.50" shape="Circle"/>
        </axis>
        <axis id="rel_axis_3" label="">
          <device type="mouse" id="0" name=""/>
          <event type="axis" id="y" dead_zone="20" multiplier="12.00" exponent="0.50" shape="Circle"/>
        </axis>
      </axis_map>
      <joystick_corrections_list/>
    </configuration>
  </controller>
</root>
Test Video:
histamine
Posts: 5
Joined: Tue Sep 15, 2020 10:01 am

Re: Nintendo Switch Pro Controller Support

Post by histamine »

After some research on this project https://github.com/spacemeowx2/RemoteSwitchController, I think maybe i can try to map mouse to gyro axis if the game support gyro aiming?
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: Nintendo Switch Pro Controller Support

Post by Matlo »

Thanks for sharing! I am very busy these times, I'll review your merge request in a week or so.
GIMX creator
Cybereu
Posts: 182
Joined: Sun Jul 10, 2011 1:10 pm

Re: Nintendo Switch Pro Controller Support

Post by Cybereu »

Is custom firmware on switch required ?
User avatar
kaiba_seto2004
Posts: 553
Joined: Sat Jul 15, 2017 9:15 am

Re: Nintendo Switch Pro Controller Support

Post by kaiba_seto2004 »

Hi there, I've just tested this project and I think it worked great so far. Note: decrease refresh rate to 100Hz to make it work :)
PS4 enthusiast.
Post Reply