A new update for the highly modified version of the Sys-consystem module is published, the sysmodule a once installed to use any third-party controller connected directly to the USB port of the
SwitchesConsole.
Unlike other similar solutions that require USB adapters or a smartphone to work (see hid-mitm), the new Sys module will only need a USB cable to connect the controller to the base.
This eliminates the need for a wireless connection, reduces input latency, and does not conflict with the libnx input solution in the latest version of the Atmosphère Custom Firmware.
This new version fixes a crash with
Xboxcontrollers without output endpoints and corrects the the malfunction of HID controllers with multiple interfaces.
In addition, it has been added the ability to pair a button to multiple controller buttons and support for official Switch controllers via USB, such as the Switch Pro Controller.
Additional mapping options were added as well. For configuration, use the file config.ini
, and it is recommended to use the latest version available in the repository.
The new contributory button mappings are systematically integrated into the main branch of the project.
Note: For Bluetooth connections, you can use MissionControl of ndeadly.
Installation
- Download the archive
.zip
and extract it within the SD card (make sure the fileexefs.nsp
is extracted correctly in the directorysdmc:/atmosphere/titles/690000000000000D/
). - Turn the Switch on or restart.
Configuration
The sys-con module includes a configuration folder located in /config/sys-con/
. . This folder contains options to adjust the dead zone of joysticks and triggers, and for remapping inputs. The configuration is loaded as follows:
- The [global] section is loaded only once, when the console starts, so if you want to apply a change you need to restart the console.
- The other sections are dedicated to configuring the controllers and are loaded every time you connect a controller. Therefore, to apply a change it is necessary to disconnect and reconnect the controller.
Loading order of controller mapping:
- The [default] section is loaded first.
- A [VID-PID] section is then searched; if found, it overwrites the default value.
- If [VID-PID] contains a [profile], first the [profile] is loaded and then [VID-PID].
In other words, the order of loading is: [Default] [Profile] [VID-PID]. If you want to overwrite a setting for a single controller, it is recommended that you write the configuration in [VID-PID].
Log in a lo
In case of problems, you can consult the logs in /config/sys-con/log.log
(in the SDCard). Logs are created automatically with a log level set to Info
. . For more detailed logs, you need to change /config/sys-con/config.ini
in the following way:
[global]
log_level=0
Restart the Switch console after making any changes to the file config.ini
. .
Important: If you enable the “Trace” or “Debugging” log level, the sys-module will automatically increase the polling frequency to 100 ms (for Debug) and 500 ms (for Trace). This will result in an increase in controller latency (this is normal and expected).
Therefore, if you want to press a button, you will need to hold it for at least 1 second. Trace and Debug log levels are not suitable for playing, but are used exclusively for debugging purposes.
Characteristics of
- Support joystick/gamepad HID (compatible with PC controller).
- Mapping the buttons using VID/PID or profiles.
- Deadzone is configurable.
- Configurable polling frequency.
- Configurable controller color using ?RGBA.
- Vibration.
Supported controllers
- Any controller for PC.
- Dualshock 4.
- Dualshock 3.
- Xbox OG controller.
- Xbox 360 controller.
- Xbox 360 wireless adapter (to 4 controllers can be connected).
- Xbox One X/S controller.
- Flying.
Tested
- Xinmotek XM-10 (arcasal controller).
- PSX adapter.
- Dualshock 4.
- Xbox 360 controller.
- Xbox 360 wireless adapter.
- Logitech Driving Force GT (flying).
- Trustmaster T150 Pro (flying).
- BSP-D9 Mobile Phone Stretch game controller.
- the Phantom White PDP
- Wave Afterglow PDP Xbox Series.
- Activbb X6-34U.
How to add a new controller?
Most of the time you will only need to do the button mapping. Here’s how to do it:
Method 1 (From a Windows PC)
- Connect the controller to the PC.
- Go to “Control Panel” – “Dyvice Management” and search for the USB device under “Human Interface Devices”.
- Double-click the device or right-click and select “Properties”.
- Go to the “Details” tab and select “hardware ID” to display the PID and VID. The PID/VID should appear as “HID-VID-0810&PID-0001*…”, which will become: [0810-0001].
- Open up the file
joy.cpl
(both through Win+R and directly from the Start menu). - Select the controller and click on “Property”.
- Here you should see a panel with button IDs (1, 2, 3, …), press the buttons and take note of which button is associated with which ID.
- Now edit the file
/config/sys-con/config.ini
on the SD card of the
[0810-0001]
B=3
A=2
Y=4
X=1
L=7
R=8
ZL=5
ZR=6
minus=9
plus=10
Where 1, 2, 3, 4, … are the keys IDs noted in step 7.
Method 2 (Directly from the Switch logs)
- Connect the controller to the Switch and disconnect it.
- Open up
/config/sys-con/logs.txt
and look for a line like: “Trying to find configuration for USB device: [0810-0001]”. - Now change
/config/sys-con/config.ini
on the Switch SD card and add:
[0810-0001]
B=1
A=2
Y=3
X=4
L=5
R=6
ZL=7
ZR=8
minus=9
plus=10
Where 1, 2, 3, 4, … are set randomly.
- Reconnect the controller.
- On the Switch console go to: Settings – Controller and sensors ? Test input controller.
- Try to press the buttons, you will quickly realize that the mapping is wrong, now you have to go to remake it correctly by modifying it
/config/sys-con/config.ini
. .
Changelog
- Fixed a crash with Xbox controllers with no output endpoints.
- Fixed the malfunction of HID controllers with multiple interfaces.
- Added the function to pair a button to multiple controller buttons. Further details
- Support for official USB Switch controllers (e.g. Switch Pro Controller).
- Added additional mapping options.
The configuration is via the file config.ini
, and it is recommended to use the latest version available in the repository.
A new version of sys-con is not released whenever a contributor provides a new mapping of the buttons, but these are systematically integrated into the main branch of the project.
You can share your mapping if you create one in this thread.
Download: Sys-con v1.3.0 (ATM 1.6.x)
Download: Sys-con v1.3.0 (ATM 1.7.x)
Download: Source code Sys-con v1.3.0
Source: github.com