A new update for the highly modified version of the Sys-con system module is published, the sysmodule once installed allows us to use any third-party controller connected directly to the USB port of the Switch console.
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 introduces several new features, including the ability to map the “Slider” and “Dial” controls, useful for some controllers that require the use of a slider on the right stick.
The update also includes a major change in analog mapping, which allows you to map any control over any other control, but involves a configuration change that could disrupt existing custom configurations.
Also fix to a problem of incorrect interpretation of HID data when the HID report descriptor contains negative values.
Further problems have been corrected, such as the one that prevented the proper functioning of the Switch Pro controller via USB (corrected by version 1.3.0).
Added mapping for the T.Flight Hotas X controller in PS3 mode for ACE Combat 7 Deluxe, thanks to the contribution of ?kfkboys.
As for significant changes, the configuration file config.ini
it has been updated. Old configuration items for analog sticks, such as left_stick_x=X
and and right_stick_x=Z
, they have been replaced by new definitions (lstick_left=-X
, lstick_right=+X
, etc.).
Users with custom configurations will need to update their files to reflect these changes, unless the configurations have already been shared and updated in the official repository.
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.
- Phantom White PDP Xbox One.
- 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 Switch SD card and add:
[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
- Added a way to map “Slider” and “Dial” (useful for some controllers that need a slider on the right stick).
- Fixed the problem of misinterpretation of HID data when the descriptor of the HID report contains negative values.
- Modified the analog mapping to allow you to map anything on any other control
- Fixed the problem of the Switch Pro controller that did not work properly via USB in some situations (corrected by version 1.3.0).
- Added mapping for T.Flight Hotas X in PS3 mode for ACE Combat 7 Deluxe with a ?kfkboys.
Details of changes that may cause problems: The file config.ini
it has been changed.
The following items:
left_stick_x=X
left_stick_y=Y
right_stick_x=Z
right_stick_y=Rz
They have been replaced with:
lstick_left=-X
lstick_right=+X
lstick_up=+Y
lstick_down=-Y
rstick_left=-Z
rstick_right=+Z
rstick_up=+Rz
rstick_down=-Rz
If you have a custom configuration that uses these items, you need to update it. If the configuration has been shared and the controller is already in the repository, then all changes have already been applied automatically.
Download: Sys-con v1.4.0 (ATM 1.6.x)
Download: Sys-con v1.4.0 (ATM 1.7.x)
Download: Source code Sys-con v1.4.0
Source: github.com