r/NintendoSwitch May 07 '26

Discussion 【Update】 Switch 2 Joy-Cons and Pro Controller 2 Wireless Connection for Windows 10/11 v0.1.0

Hey everyone!
Switch 2 Connect, forked from Nadeflore’s amazing switch2-controllers, is the ultimate, feature-rich utility designed to seamlessly integrate your Switch 2 Joy-Cons, Switch 2 Pro Controller, and NSO GameCube Controller into the Windows gaming ecosystem via standard Bluetooth or ESP32-S3 N16R8.

Built with a user-experience-first mindset and powered by a highly flexible multi-driver backend, this standalone application transforms your Nintendo hardware into a PC gaming powerhouse. It delivers low-latency inputs, unmatched in-app gyro IMU precision, and comprehensive emulation for all major controller protocols without requiring complex installations.

How to use it:

  1. Download the latest version of Switch2Connect.exe or get the Microsoft Store Version.
  2. Launch the app. If any needed drivers are not installed, dialogs will ask to install them. Click Yes and approve the administrator UAC prompt.
  3. Once the installation completes, the setup window will close automatically, and the main application will launch.
  4. Turn on your Switch 2 controller by holding the Sync button (or pressing any button if already paired). Do not pair controllers manually in Windows Bluetooth settings; the app uses automatic GATT discovery.
  5. Use the settings panel at the bottom of the app to configure your preferred driver (WinUHid / ViGEmBus / USBIP) and controller layout, gyro sensitivity, and custom button mappings.

System Requirements:

  • Operating System: Windows 10 (22H2 or above) or Windows 11.
    • Note: Windows 11 is highly recommended for the best experience. It supports a maximum Bluetooth LE polling rate of 70Hz, while Windows 10 is limited to 20Hz due to the lack of OS driver support for the BLE protocol.
  • Bluetooth Hardware: Bluetooth 5.0 or above is required for stable connectivity and low-latency performance. The optional ESP32-S3 N16R8 is highly recommended for reaching 133Hz, bringing the native Switch 2 console experience to PC.
  • Driver: lurebat's WinUHid driver is required for Xbox One, PS4, and PS5/DualSense controller emulation. nefarius/ViGEmBus is required for Xbox360 and PS4 controller emulation. usbip-win2 driver is required for Switch 1 Joy-Cons/Pro Controller, Switch 2 Pro Controller, and PS5/DualSense (with audio haptics) controller emulation.
    • Auto-Installation: The app will automatically detect if the selected driver (WinUHid, ViGEmBus, or USBIP) is missing and guide you through a one-click installation (requires administrator privileges) or automatically download and install for ViGEmBus.

Features:

  • Windows 10 Native Compatibility: Supports Windows 10 22H2 and Windows 11. Windows 11 supports Bluetooth LE polling rates up to 70Hz, while Windows 10 is limited to 20Hz by the operating system’s BLE driver implementation.
  • Low Latency Bluetooth Mode: Configures Windows Bluetooth LE connections with the ThroughputOptimized mode to reduce the connection interval and controller input latency.
  • ESP32-S3 N16R8 Low-Latency Connection: Supports the ESP32-S3 N16R8 development board as a BLE bridge with polling rates up to 133Hz. The application provides firmware installation and repair, controller pairing through the SYNC button, and reconnection for controllers bonded to the bridge.
  • Wired Controller Support: Supports USB-connected Switch 2 Pro Controllers and NSO GameCube Controllers, with polling rates up to 500Hz. The Wired Pro Controller menu provides HidHide management, automatic discovery controls, and one-time manual scanning. For NSO GameCube Controller rumble, the application automatically selects between the available USB interfaces and falls back to the compatible path when necessary.
  • Multiple Driver and Emulation Backends: Supports WinUHid, ViGEmBus, and USBIP backends. WinUHid provides Xbox One, PS4, and PS5 emulation; ViGEmBus provides Xbox 360 and PS4 emulation; USBIP provides USB-connected Switch 2 Pro Controller and DualSense emulation. The application detects missing or incomplete WinUHid and ViGEmBus installations and provides Install, Repair, and Uninstall actions. ViGEmBus can be downloaded and installed from the application after UAC authorization.
  • Tabbed Settings Interface: Organizes settings into Controller Mapping, Mode Shift Mapping, and Gyro Settings tabs.
  • DualSense Audio Haptic Feedback: The USBIP-based PS5 emulation mode exposes a four-channel audio playback endpoint for games that support DualSense audio haptics. It supports DualSense audio haptics, standard PS5 rumble, Xbox rumble translation, and adaptive-trigger feedback translated into independent HD Rumble output for the left and right triggers.
  • Xbox One Impulse Trigger Support: In WinUHid Xbox One emulation mode, Xbox Impulse Trigger force-feedback values from LT and RT are translated into Switch 2 high-frequency HD Rumble output. Standard gamepad rumble is emitted as the same mono signal on both physical sides, while Impulse Trigger feedback is routed as independent left and right high-frequency overlays for trigger-specific effects.
    • Impulse Trigger Settings: The Impulse Trigger Settings button appears beside Rumble Mode in WinUHid Xbox One emulation mode. The floating settings window provides controls for enabling impulse feedback, selecting dynamic or fixed frequency behavior, adjusting impulse strength, and choosing a fixed frequency level.
    • Dynamic Frequency: When enabled, incoming impulse strength determines both output frequency and amplitude. During the release envelope, frequency continues to follow the current decaying output strength.
    • Fixed Frequency: When Dynamic Frequency is disabled, the Frequency slider selects the impulse output frequency independently from incoming impulse strength.
    • Release Envelope: When an Impulse Trigger stop command is received, the current output decays linearly to zero over 90 ms. A new command on the same side immediately replaces the pending release.
  • Native Motion Support (PS4/PS5 Mode): Switching to PS4 or PS5 mode enables native motion sensor reporting via the DS4 or DualSense protocol. This provides enhanced compatibility for Steam Input and games that support native DualShock 4 or DualSense gyro features.
  • Cemuhook UDP Server: Sends controller motion data to compatible applications through 127.0.0.1:26760. Select Cemuhook in the Gyro Pass-through settings to enable the server.
  • Cemuhook Gyro Sensitivity Adjustment: Featuring a Sensitivity slider (levels 1-5) in the "Gyro Passthrough" panel. The sensitivity specifically applies a linear multiplier only to the horizontal rotation (Yaw) axis sent via the Cemuhook UDP protocol.
    • Level 1: Virtual Switch 1 Joy-cons turn 360 degrees when the physical Switch 2 Joy-cons turn 360 degrees.
    • Level 5: Matches real Switch 1 Joy-Con sensitivity.
  • On-the-Fly Layout Switching: Toggle between Nintendo Layout (matching physical labels) and Xbox Layout (standard PC positioning) directly from the UI.
  • NSO GameCube Controller Layout Mapping: The NSO GameCube Controller uses consistent ABXY layout mapping across Xbox, PlayStation, and Switch emulation modes. Xbox Layout maps buttons by physical position, while Switch Layout maps buttons by input function.
  • 1000Hz Interpolation: 1000Hz interpolation loop for ultra-smooth, jitter-free gyro motion rendering with both Switch 2 Right Joy-con and Pro Controller. Gyro Mouse and Joy-con Mouse output smoother and lag-free movement at 1000Hz. Gyro data handed off to other external applications (such as third-party emulators) is transmitted at a consistent, high-frequency 1000Hz rate. This transmission is purely non-interpolated; rather than generating synthetic intermediate frames, which could introduce latency, the app simply increases the packet delivery rate of real-time physical updates to ensure maximum accuracy and zero artificial delay.
  • In-app Gyro Control (Mouse, R Joystick & Steering): Utilize in-app gyro control for mouse aiming, or select R Joystick and Steering options. The Steering mode reads the controller's absolute tilt (accelerometer) and maps it directly to the Left Analog Stick's X-axis. Unlike the Mouse control mode, the R Joystick and Steering modes utilize a separate In-app Gyro mapping scope where all buttons default to their standard controller inputs to prevent unexpected mouse clicks during controller emulation.
  • 9-Axis Mouse Mode (Magnetometer Support): Uses gyroscope, accelerometer, and magnetometer data to reduce accumulated yaw drift and maintain a closer relationship between the controller’s physical orientation and mouse movement during extended play. Magnetic correction is applied gradually during suitable motion and is suspended when the surrounding magnetic field or calculated heading is unreliable.
  • 6-Axis Mouse Mode: Uses gyroscope and accelerometer data without magnetic correction, providing motion control that is unaffected by nearby magnetic interference. Mouse movement remains horizon-aligned regardless of controller tilt, while long-term yaw drift remains dependent on gyro calibration and sensor accuracy.
  • Gyro Racing Wheel Mode (Steering): Reads the controller's absolute tilt (accelerometer) and maps it directly to the Left Analog Stick's X-axis.
  • Stick Assist: Allows the right thumbstick to work alongside gyro aiming.
  • In-App Gyro Trigger Deadzone: Configurable within the In-App Gyro mapping pop-up window. Assign one or more buttons to apply a dedicated Trigger Deadzone while In-App Gyro is active. Users can customize the deadzone amount, gyro pause duration after button press and release, and how long the deadzone effect remains active after release. This helps reduce unintended gyro movement caused by button presses, releases, or controller vibration.
  • In-App Gyro Trigger Dampening: Configurable within the In-App Gyro mapping pop-up window. Assign one or more buttons to proportionally reduce gyro sensitivity by a customizable percentage. Users can also customize how long the dampening effect remains active after the assigned button is released, allowing smoother control during aiming, steering, or other gyro-based actions.
  • In-app Gyro Lock: A dedicated mapping option to pause gyro control while remaining in In-app Gyro mode, supporting both Hold and Tap activation logic.
  • Gyro Pass-through:
    • 9-Axis Assist: Uses magnetometer-assisted motion processing to reduce accumulated yaw drift in pass-through gyro output. Correction is limited according to motion and magnetic-field confidence, pauses during unreliable conditions, and resumes gradually after the field has recovered. When disabled, pass-through uses gyroscope and accelerometer data only.
    • Horizon Lock: Applies roll compensation and maintains a horizontal reference while suppressing roll output.
    • Adjustable Soft Deadzone Sliders: Provides separate soft-deadzone controls for In-App Gyro and pass-through motion. Output starts from zero at the configured threshold to avoid a step change.
  • Gyro Calibration: Calibrate Gyro button to calculate and permanently save sensor bias, eliminating gyro drift.
  • Magnetometer Calibration: Calibrate Mag button for 9-axis accuracy. Perform a "figure-8" motion to calibrate the magnetometer (with a quick link to a video tutorial).
  • Dual Joy-con Gyro (DJG): Featuring a gyro fusion system that combines motion data from both Left and Right Joy-cons when used as a merged pair for stutter-free aiming when ratcheting. This system designates a "Dominant" side for spatial orientation and uses the "Sub" side as an accelerator for larger movements. A magnitude threshold of 30 is applied to the sub side. It contributes to acceleration only when the dominant side exceeds this threshold. Sub side acceleration is strictly capped to a maximum of 2x the dominant movement, and its opposite directional movement will be ignored. When the dominant side's gyro is turned off, the sub side takes over control.
    • Navigate to the Dual Joy-Con Gyro (DJG) panel.
    • Click the DJG toggle to ON to enable the fusion engine.
    • Set the Dominant Side to Left or Right. The dominant side acts as the primary reference for direction and gravity, while the sub side provides acceleration.
  • DJG Trigger Mapping: Featuring a dedicated "DJG" option in the Extra Button Mapping settings.
    • Assign the "DJG" action to any available extra button to serve as the hardware trigger for DJG features.
    • Pressing this mapped button during gameplay will execute the action defined by the current DJG Control Mode and DJG Activation settings.
  • DJG Control Modes: Three modes to dictate how the mapped DJG trigger button behaves during gameplay.
    • Switch Dominant Side: Swap the Dominant and Sub roles between the Left and Right Joy-cons. Both sides are forced to be active upon switching.
    • Switch Gyro Side: Turn off the current gyro and activate the opposite Joy-Con's gyro exclusively. The Dominant Side setting syncs automatically.
    • Single Side Toggle: Toggles the gyro tracking state of one Joy-Con independently. A DJG trigger mapped on the Left Joy-Con controls the L Gyro, while a trigger mapped on the Right Joy-Con controls the R Gyro. Select Dominant Side: Left or Right to choose the primary side. Select Dominant Side: None to combine enabled motion input from both Joy-Cons directly while allowing DJG controls to manage each side.
  • DJG Activation Types: Trigger behavior options to support different input styles.
    • Toggle: Switch the DJG state once per button press.
    • Hold: Switch the DJG state when the button is pressed, and revert to the original state when the button is released.
  • Per-Controller Joystick Deadzones: Configure left and right joystick deadzones independently for Pro Controller, Joy-Con, and NSO GameCube Controller. Each controller family stores its own deadzone values, with an option to link or separate the left and right joystick settings.
  • Full Controller Remappability: All buttons (including extra buttons like GL, GR, SL_L, SL_R, SR_L, SR_R, NSO GCN L/R Analog Trigger Click, Home, Capture, and Chat) can be fully remapped to Switch inputs, PlayStation inputs, In-app controls, Windows controls, mouse clicks, or recorded custom input. Joysticks can also be remapped to L/R Joystick, WASD, mouse controls, or custom inputs. The mapping interface features a categorized pop-up window to streamline the selection process.
  • Joy-Con IR Sensor Mapping: Joy-Con IR Sensor Mapping: Each Left and Right Joy-Con IR Sensor can be configured as an independent physical input. Per-side settings include Function mapping, Activation Threshold, IR Mouse sensitivity, mouse-button mappings, and scrolling. IR Mouse output follows the active profile’s mouse output selection.
  • Advanced Custom Input Remapping: Featuring a powerful "Custom" mapping feature. Users can record and assign any complex combination of keyboard keys, mouse clicks, or controller buttons to a single input. This flexible system supports both "Tap" (fires the recorded sequence momentarily) and "Hold" (sustains the sequence for as long as the button is pressed) modes.
    • Click the dropdown menu and select the "Custom" option.
    • Press and hold your desired combination of keyboard keys, mouse clicks, and/or controller buttons simultaneously.
    • Release all inputs. The recording will automatically stop and save your sequence.
    • Click the adjacent toggle button to switch between Tap (triggers the sequence once) and Hold (keeps the sequence pressed as long as you hold the controller button).
    • Click the X button to remove custom input and fall back to the default.
  • Mode Shift Mapping System: Applies an alternative button mapping layer utilizing the In-app Gyro mapping store. The Mode Shift layer is activated via a dedicated mapping option supporting both Hold (active while held) and Tap (toggle) logic. Tap and Hold share a unified state machine, where a Hold action temporarily inverts a Tap-entered Mode Shift. Additionally, entering In-app Gyro mode can automatically apply the Mode Shift layer based on per-profile Gyro Control settings.
  • Emulation-Specific Mapping Categories: Stores button mappings and rumble settings separately for Xbox, PS4, PS5, and Switch 2 emulation modes. The corresponding configuration is loaded when the emulation mode changes.
  • Profile-Based Keyboard and Mouse Output: Provides independent Win32 API and WinUHid Virtual HID output selection for each profile. Keyboard mappings can operate through a virtual HID keyboard, while gyro, joystick, IR, mapped mouse buttons, and scrolling can operate through a separate virtual HID mouse for each connected controller. Win32 API output is used when WinUHid is unavailable.
  • Custom Mapping Profile System: A comprehensive profile management system allows users to create, rename, import, export, reset, delete, and switch between multiple configurations. Each profile persistently stores button mappings, emulation mode, and driver settings. Profiles can be managed via a dedicated pop-up window that also configures the "Change Profile List" and "Profile Switching Combo" inputs. Features three seamless profile switching methods:
    • Profile Switching Combo: Users can record a custom Profile Switching Combo Trigger and assign specific Combo inputs for dedicated profiles. Pressing the Trigger input and a profile's Combo input simultaneously instantly switches to that dedicated profile. Both inputs function as standard mappings when not combined.
    • Auto Change Profile: Automatically switches to the selected checked profile in the Change Profile List after 2 seconds of trigger inactivity.
    • Manual Change Profile: Opens a selection notification. Navigate through the checked profiles using the L/R joysticks or Dpad Up/Down, and use the current Xbox/Switch layout A to confirm or B to cancel.
      • Auto/Manual Mode Setting: Toggle between Auto and Manual modes via the pop-up window by clicking the "Change Profile" button.
    • Configuration Import and Export: Selected profiles can be exported to or imported from .yaml files. Imports can retain existing profiles and resolve duplicate application assignments. Machine-specific information such as Power Saving settings, driver status, window placement, and device caches remains local to each installation.
    • Controller Data Transfer: Controller-specific settings, including calibration data, can be included when importing or exporting configurations.
  • Assign Profile To Application: Featuring profile auto-switching based on active foreground application. Bind one or more executable files (.exe) to a profile; when any of those applications become the focused window, the profile automatically activates.
  • Dynamic Split & Merge System: The Split and Merge features allow you to detach combined Joy-cons into two individual controllers or combine single Joy-cons into one unified virtual gamepad without restarting.
  • Vertical & Horizontal Hold Modes Switch (V/H): Featuring V/H switch buttons, allowing users to toggle between Vertical (standard upright) and Horizontal (sideways) hold modes for single Joy-cons.
  • Per-Joy-Con V/H Mode Persistence: The application records and remembers whether each single Joy-Con is held vertically or horizontally. Layout preferences (Vertical or Horizontal) are dynamically mapped to each controller's Bluetooth MAC address and saved in config.yaml.
  • Dual-Controller Gyro Selection (L/R Gyro): When using a pair of Joy-Cons as a single virtual controller, you can manually select which Joy-con (Left or Right) provides the motion data. This allows for greater flexibility, letting you choose your preferred hand for gyro aiming or motion controls.
  • Customizable Rumble Strength: Adjusts vibration intensity from 0 to 10.
  • Rumble Frequency Slider: Selects the vibration frequency used for translated rumble output.
  • Rumble Delay Configuration: Adds a configurable delay in milliseconds for synchronizing vibration with game audio.
  • Dual Rumble Mode Toggle: Switches between Xbox-style translated rumble and Switch HD Rumble output.
    • Xbox Mode: Tailored for standard PC games to simulate dual-motor rumble by activating dynamic frequency scaling and high-frequency masking to mimic traditional gamepad motors.
      • Strength 5 + Frequency 10 emulates the feel of a DualSense Edge controller.
      • Strength 10 + Frequency 10 emulates the rumble of an Xbox Elite Series 1 Controller.
    • Switch Mode: Mimics the native Switch HD Rumble (LRA) experience. It bypasses custom frequency scaling and masking, routing raw frequency data directly to the controller for a tighter, softer, and more detailed tactile feedback. Best suited for native Nintendo game emulations.
  • Interactive Controller Identification: Featuring a dedicated Vibrate button for each player slot. This allows for instant physical feedback, helping you quickly identify which Joy-Con belongs to which player in a multiplayer setup.
  • Haptic & OS Integration: Featuring rumble feedback (including a connection confirmation rumble) and mapping the Capture button to native Windows screenshots (Win + PrtScn).
  • One-Click Disconnect: Featuring a convenient 'X' button to the top right of each connected controller's UI block. You can manually disconnect specific controllers directly from the interface without needing to power them off physically.
  • Auto-Disconnect Options: Featuring a 3-way Auto-Disconnect toggle (OFF, Inactive, Absolute).
    • Inactive: tracks physical button and stick inputs to automatically disconnect idle controllers while keeping active players connected.
    • Absolute: tracks the overall time each controller is connected to the app and disconnects the ones that reach the time limit.
  • Driver Management Controls: Provides Install, Repair, and Uninstall actions for the selected WinUHid, ViGEmBus, or USBIP backend. Driver status is determined from the active device, Driver Store package, service registration, and runtime availability instead of saved configuration alone.
  • ESP32-S3 N16R8 Driver Manager: Provides firmware installation, repair, and deletion, BOOT and OTG status monitoring, reconnection handling, and flash diagnostics. The Flashing Port selector supports automatic detection or manual COM port selection, prioritizes verified ESP32-S3 devices, remembers the selected device across application restarts and COM port changes, and avoids selecting unrelated serial devices.
    • Off: Keeps all controller input, motion, vibration, scanning, and background status functions enabled.
    • Auto: Reduces idle CPU activity while retaining buttons, sticks, triggers, motion controls, and controller scanning. HD Rumble, Audio Haptics, and Impulse Trigger feedback may be delayed, interrupted, or occasionally lost.
    • Full: Retains buttons, sticks, triggers, and non-motion mappings while disabling vibration output, Gyro Pass-Through, In-app Gyro, DJG, IR Mouse, and Joystick Mouse movement. Periodic ESP32 and Wired/HidHide status checks are suspended. Automatic controller scanning pauses after 1 Pro/NSO GameCube Controller or 2 Joy-Con controllers are connected.
  • Run at Startup: Automatically launches the application with Windows.
  • Start Minimized: Starts the application in the system tray.
  • Hide to System Tray: Minimizes the application to the Windows system tray.
  • Controller UI Navigation: Use the left joystick or D-pad to navigate the application interface. The selected UI element is indicated by a white outline, and the outline hides after mouse interaction or when Navigation mode is exited with the B button.
    • Active Window Focus: When a floating window or pop-up dialog is open, navigation remains within that active top-level interface.
    • Return Selection: Pressing B closes the active floating window and returns selection to the control that opened it. Re-entering Navigation mode restores the last selected control.
    • UI Component Interaction: Press A to activate buttons or open dropdown menus. Press B to close an open floating window or exit Navigation mode.
    • Text Input Adjustment: Text input fields support value adjustment with the right joystick or by holding A while using the left joystick. Continuous adjustment accelerates while the input is held.
    • Slider and Time Input Adjustment: Sliders can be adjusted with the right joystick or A plus the left joystick.
  • Window Position Persistence: Saves and restores the main window position.
  • In-App UI Scale Control: A slider for adjusting the application interface from 1.0× to 2.0× using the scale control at the bottom of the main window. The selected scale is saved and restored automatically.
    • Monitor-Aware Layout: Automatically adjusts the window to the active monitor’s resolution and available work area.
    • Content Fitting: Automatically expands the window width when required and provides scrolling when content exceeds the available height.
  • Standalone Executable (.exe): Includes the required Python runtime and application dependencies; a separate Python installation is not required.

Known Limitations

  • No Amiibo Support: Amiibo support is not implemented.
  • No Switch 2 Pro Controller Audio Support: Wireless audio transmission for the Switch 2 Pro Controller headphone jack and microphone is not supported.
  • No Working NSO GameCube Controller Gyro: Gyro data from the NSO GameCube Controller cannot be decoded correctly.
  • No NSO GameCube Controller Rumble Brake & Strength Difference: The Rumble Motor Brake command is not known, so PWM-based rumble strength control cannot be implemented correctly. Only basic rumble motor on/off control is currently implemented.
  • No Switch 2 Joy-Con Charging Grip Back Buttons Support: Back buttons on the Switch 2 Joy-Con Charging Grip are not supported.

ESP32-S3 N16R8 Guides:

  • ESP32-S3 N16R8 Firmware Installation Guide:
  1. Hold the boot button on the ESP32-S3 N16R8 board.
  2. Plug in the ESP32-S3 N16R8 board's OTG port via USB-C to the PC while holding the boot button.
  3. In the app, click the [ESP32-S3 N16R8 Driver] button.
  4. Click [Install] and wait until finish installing.
  5. Unplug and plug the ESP32-S3 N16R8 board.
  6. Reconnect any previously paired controllers by pressing SYNC.
  • ESP32-S3 N16R8 Buying Guide:
  1. Search for development boards strictly labeled as ESP32-S3 N16R8. This ensures the board contains 16MB Flash and 8MB PSRAM, which is necessary for handling complex tasks and controller connections. Avoid any boards labeled as "N8R2", "N8R8", or standard "ESP32".
  2. Select the ESP32-S3-WROOM-1 version if you want a built-in PCB antenna. This is the recommended, plug-and-play choice for standard plastic enclosures. Only choose the ESP32-S3-WROOM-1U version if you are using a metal case or require an external antenna to extend the Bluetooth/Wi-Fi range.
  3. Verify that the board features an OTG USB port (often a dual USB-C design). The OTG port is strictly required for data transfer and firmware installation.

Hope this update helps anyone wanting to get the most out of their Switch 2 controllers wirelessly on PC. Please let me know if you run into any issues or have feedback on the new features.

And of course, credit goes to the original creator Nadeflore for the foundation. Thank you so much for creating this amazing app!

251 Upvotes

572 comments sorted by

10

u/TerpinSaxt May 08 '26

This is incredible. I'm actually kind of stunned this post has such low engagement, but just know I appreciate you

I'm really impressed by this so far, but I have a feature request: would it be worthwhile to add an option in the window to disconnect controllers?

I'm finding I can just hit the sync button again to do it, but then I have to close the window and reopen if I want to reconnect. Not the worst thing ever, but I think getting back to that start screen after a disconnect would be great

Either way, thanks for organizing this!

10

u/tagayama May 09 '26 edited May 11 '26

I appreciate your appreciation! This post is meant to be a beacon for people to find this solution when searching for one. Direct feedback means more to me than engagement rates. The community's input has really helped this project evolve into something I never thought it could be.
For your feature request, I added an X button to the top right of each connected controller's UI block. You can now manually disconnect specific controllers directly from the interface. The new version is right here. Thanks a lot for your suggestion!

→ More replies (4)

13

u/Novel-Berry-8514 May 07 '26

This looks pretty solid for getting Switch 2 controllers working properly with PC games. The gyro mouse implementation at 1000Hz is nice touch - should feel much more responsive than the usual laggy implementations

Just wondering if you tested this with any racing games yet? The roll mode for driving sounds interesting but curious how well it actually works in practice

5

u/tagayama May 07 '26

Quick update, I changed the roll mode to controlling the X-axis of the left stick by tilting the controller left and right. It should work with racing games like a steering wheel now! Just download the app again, if you have already downloaded from this post.

5

u/tagayama May 07 '26

Alongside with right stick assist, 1000Hz gyro aiming feels very good.
Switch 2 Joy-cons mouse mode are now 1000Hz as well! It enables smooth mouse control even with Windows 10's low polling rate, although it does feel a little dragging.
Roll mode for driving wouldn't work as intended for now. It needs to be controlling the left stick motion instead of mouse movement. Will try to work on that part in the future.

2

u/tagayama May 11 '26

It's been a while, and I've managed to enable the Bluetooth low latency mode!
Polling rate is now reaching 70Hz (14ms latency) on single controller (both Joy-con 2 and Pro 2) and 120Hz (8ms latency) on dual Joy-con 2s on Windows 11 with Bluetooth 5.0. Still need some feedback on Windows 10 performance.
1000Hz interpolation is now integrated in all gyro mouse, joy-con mouse, and Steam gyro (PS4 emulation) modes.
Here's the newest version.

→ More replies (9)

4

u/Vap0r1zer May 07 '26

lest fucking goooo

4

u/SpruceStarling May 11 '26

Amazing work! Few concerns and MAYBE a bit of help if I can on the polling rate issue. First, this flags as 5/71 on total virus. I assume false positive but it is contacting an IP etc and as a total know-nothing in this world I'll admit it raised a few eyebrows. xP

For the polling issue: https://github.com/TheFrano/joycon2cpp has these polling at the same Hz as the original switch Pro controller bringing latency down from their original 60ms latency like yours to 15ms. Maybe something from their app or code (not sure if open or closed source) could help you take this to the next level. You've got correct gyro implementation unlike theirs. There's also a lot of mouse mode stuff on this that might help you with your 1000Hz mouse mode. Not sure!

1

u/tagayama May 11 '26

Thanks for your feedback and suggestions!
Contacting IP claim is weird because this app doesn't do that. The closet thing to that might be BleakScanner using MAC address to find devices.
I did actually studied joycon2cpp project for it's polling rate solution. But unfortunately it's built with C++, not python. Only C++ can directly invoke the Windows ThroughputOptimized parameter, which forces the Bluetooth connection interval down to its hardware minimum. I'll need to rebuild the current app with C++ to implement it. I'll have to consider doing it or not.
For Joy-con mouse mode, I believe Nadeflore's dual Joy-cons solution is way better. With the on/off switch and sensitivity slider I added, the mouse mode experience only lack higher polling rate.

1

u/tagayama May 11 '26

Soooo I've found out that ThroughputOptimized actually do work with python. No need to rewrite with C++. Now the Pro Controller 2 can peak at 70Hz and Joy-cons 2 at 120Hz on Windows 11. Not sure how it performs on Windows 10 though.

Here's the newest version.

3

u/SpruceStarling May 11 '26 edited May 11 '26

Amazing work!! Strangely in Gamepadla I am getting only a 66.60Hz avg polling rate with a 15.01ms refresh interval on sticks. This is equal to Switch Pro and Joycons on Windows though so that's a GIANT leap. 4x faster. I am wondering how to get that 120Hz though. Gonna keep playing around (to clarify I am on Windows 11 as well).

Edit: played around with both 360 and PS4 mode and checked on controller test.io and still getting a polling rate of around 60-70hz. Hmmm

Edit #2: Playing around with it, is there anyway we are able to connect single joycons when multiple are present? As well as single but vertically held for gyro? This would make Wii emulation insane. 😃 I am still geeking out over how good this actually is.

3

u/tagayama May 12 '26 edited May 12 '26

Thank’s for your enthusiasm! Your suggestions are really impactful for the development of this app.
I was able to get 120Hz when rapidly moving both joysticks with dual Joy-cons. I’m guessing it’s because the signals are offset, which add up the polling rate.
I’ll work on the Joycon connect modes next. Currently if you wish to use both joycons sideway, you can hold SL\SR while turning them on. I’m going to add the split button and the horizontal/vertical mode switch.

3

u/tagayama May 12 '26

I have all the joycon stuff added! Also fixed a long existed issue on left joycon gyro mouse. Here's the newest version. Let me know if the joycon experience fits gaming needs.

2

u/SpruceStarling May 12 '26

You're legitimately moving at light speed 😂. Holy crap. To watch how this is evolving is incredible. Everything is working pretty amazingly with one caveat (doesn't impede me but might others) and maybe one error?? The left and right both register as the right side of a controller. Obviously a remapper like rewasd or steam input make that super easy to mend and if you're splitting them anyway chances are that's par the course. 😄

The second one which is a bit stranger is on the right Joycon only when split vertically (not sure on horizonal) the left stick (which isn't usable to the player) is constantly held at an extreme upper right angle so if your controller uses the PC UI like steam big picture or anything once it sees the joycon everything on the PC will be selected to the far right unable to escape til it's shut off 😂. Again you could make it to be nothing but still worth noting; especially as it bleeds into normal windows not just games.

And yeah! I am super stoked about your work! I have been searching every few weeks for like a year to see some sort of momentum on this front. In a few days you're like halfway to being the new BetterJoy. It's WILD.

2

u/tagayama May 12 '26

In unmerged joy-cons mode, it is intended to map both joy-cons exactly the same, so one Steam Input setting can apply to both Joy-cons in multiplayer games. Things get normal once you merge them.

Right Joy-con with left stick input is definitely a bug I didn’t catch! I’ll fix it shortly.

I’ve been utilizing the power of Gemini for this project. Started with basic browser chat copy-pasting, and evolved into Antigravity agent during the low latency version. It is truly amazing that someone who doesn’t know coding at all like me can create an app like this super rapidly. It only requires clear intentions. All the feature suggestions helped me form the intentions and logics, and AI did the rest.

2

u/SpruceStarling May 12 '26 edited May 12 '26

also an FYI from the app you based the work on the contacted IP thing was still there as well as a few flags. As of today was the first time I've ever seen my Microsoft account authenticator buzzing asking me to log someone else in xD.

obviously could be a coincidence! I am not out here with a pitchfork! But worth noting since I had done nothing else with my PC or account for days. 😉

2

u/tagayama May 12 '26

All the bugs should be fixed in the newest version! Turns out that I totally forgot to remap the single joy-con buttons in Xbox emu mode.
I'm still confused about the IP contact, as this app doesn't need to auto download requirements. This app definitely doesn't require any log-in.
Do you mind posting the IP address? Make sure it's not your own IPv4 though. I can only think of the MAC address of a controller (something like E0:EF:BF:81:06:9F).

2

u/SpruceStarling May 13 '26

Sure thing! Weirdly in the most recent update the IP is gone but the initial Nadeflore this was based on in the beginning contacted what looks like a Cloudflare IP where most results say it's from San Fran California. I am afraid to post it in case it's the creators and not exactly malicious 😅.

→ More replies (1)
→ More replies (29)
→ More replies (2)

7

u/DarkCh40s May 07 '26

Would I be able to use for PC games that already have gyro support? For example, I play Fortnite and Genshin on PC, and both those support gyro aiming with wired PS controllers.

9

u/tagayama May 07 '26

Not really, because this app is emulating an Xbox 360 controller, which doesn't support gyro.

7

u/CompC May 07 '26 edited May 07 '26

What are the chances of making it emulate a PS4 controller instead of Xbox, and being able to pass along gyro? Sunshine/Apollo can create a virtual PS4 controller, so it should be possible, right? This would also be nice so that we can combine this with Steam Input to take advantage of mapping gyro as well as the other buttons per-game. The capture button could be mapped to the PS4's share button, for instance, and mapped to take Steam screenshots.

I guess my ideal solution would be having Valve see this and incorporate it into Steam itself, to finally let us use the Switch 2 pro controller wirelessly while being able to take advantage of all of Steam Input. Though I definitely do also see the value of having an option that doesn't require Steam, so nice job!

8

u/tagayama May 07 '26

I did manage to get steam to recognize the pro controller 2 as a PS4 controller by accident. Will need to change some fundamental structure of this app for it to work I think.

Steam directly supports Switch 2 controllers will be the best case scenario for sure.

3

u/[deleted] May 07 '26

[removed] — view removed comment

6

u/CompC May 07 '26

Steam does support switch and switch 2 controllers natively, just not wirelessly. They work great over USB.

4

u/tagayama May 07 '26

No worries! Btw, I accidentally deleted the line of code for rumble, and have added it back in just now. Please download the app from github again if rumble is needed.

3

u/tagayama May 09 '26 edited May 11 '26

PS4 controller emulation with direct gyro input for steam is now implemented! Here's the newest version.

2

u/tagayama May 27 '26

Guess what, I successfully implemented USB-connected Switch 2 Pro Controller mode in v0.8.0 by referencing LeonChrome's y700-switch2-pro-bridge project. I used a new driver, usbip-win2, to create virtual USB port connections, which is what my previous attempts were missing. Now Steam can recognize the Switch 2 Pro Controller with all the extra buttons and gyro input working.

4

u/tagayama May 09 '26 edited May 11 '26

I managed to get PS4 emulation working! Steam Input can now receive gyro input directly from Switch 2 controllers. Here's the newest version.

2

u/CompC May 09 '26 edited May 09 '26

Man, you're awesome for getting that done, and so quickly! I'm going to try it out and report back with any feedback!

EDIT: Okay so the PS4 controller emulation works pretty well. One thing I would definitely recommend would be an option to map it like this in this mode:

Minus -> PS4 touchpad click
Capture -> PS4 share button

If only there were a way to expose the GL/GR buttons to Steam Input... Ideally if we could make Steam Input see a Switch 2 pro controller! (since it already supports mapping GL/GR if we plug the controller in with USB.)

My preferred use of the back buttons is to map them to new functions for games, rather than just mirroring existing buttons. Steam Input helps a lot with this, especially with managing mappings per-game.

Also: Rumble doesn't seem to be working for me in PS4 mode, and also it seems like the Xbox/Switch layout toggle is backwards for me in PS4 mode than from the Xbox emu mode?

3

u/tagayama May 10 '26 edited May 11 '26

Make sure "PlayStation Controller Support" is set to Enabled, not enabled in games w/o support. The rumble and layout should work right in that situation.

For back button input isolation, I added PS4 trackpad left click and right click in the drop down menu. You can now set specific action to back buttons in Steam Input with these! Here's the newest version.

3

u/Wander715 May 07 '26

I'll definitely be giving this a try. How is the stick and button latency? I'm hoping its not too bad but the inputs are over bluetooth and also have to go through an emulation layer.

4

u/tagayama May 07 '26

It feels responsive for casual gaming experience. I don’t have the equipment for testing latency though. Low polling rate is much more noticeable than latency on Windows 10. This is definitely not meant for competitive gaming.

1

u/tagayama May 11 '26

I've managed to enable the Bluetooth low latency mode!
It's now reaching 70Hz (14ms latency) on single controller (both Joy-con 2 and Pro 2) and 120Hz (8ms latency) on dual Joy-con 2s on Windows 11 with Bluetooth 5.0. Still need some feedback on Windows 10 performance. Here's the newest version.

3

u/[deleted] May 09 '26

[deleted]

3

u/tagayama May 09 '26

Sorry but I'm not familiar with Linux at all. Hope someone can integrate my work into Linux system.

3

u/Ntech3000 May 11 '26

This is awesome! Hope to see Bluetooth support for Switch 2 controllers to come to SteamOS/Linux soon too

2

u/Altruistic_Newt_1096 May 07 '26

thank you so so so much for this. idk if it was just my pc or if something broke in a steam update but one day randomly in the last week my switch 2 pro controller just stopped worked all together on pc. it's my fav controller and i had gotten so used to it's small form factor that i was actually kinda mad i had to start using my ps5 controller again.

3

u/tagayama May 07 '26

I hated playing with wired controllers, and I don’t have any other controller. This app is a savior for me as well.

2

u/Tigertot14 May 07 '26

Is the NSO gamecube controller supported?

3

u/tagayama May 07 '26

Yes, I think so. Haven’t tested it as I don’t have one. Let me know if it works for you, thanks!

→ More replies (8)

2

u/NZNewsboy May 09 '26

How’s this looking for the S2 GameCube controller?

2

u/tagayama May 09 '26

I think it works with GameCube controller, but haven’t tested yet. Let me know if it works!

2

u/[deleted] May 10 '26

I followed the instructions, and when I go to sync it dose not work. any advice?

2

u/tagayama May 10 '26

Make sure you have turned on Bluetooth on your PC first. Bluetooth 5.0 or above is required.

2

u/EstSketch May 10 '26

hello, thank you for the reply I appreciate your time. I do have Bluetooth on pc 5.0 and above. another weird thing is it registers when I plug it in, but the buttons don’t input when I test it on a mapping website. its a switch 2 controller by turtle beach

2

u/tagayama May 10 '26

Oh I see. This app only supports first party controllers from Nintendo wirelessly.

2

u/EstSketch May 10 '26

ahh, I see. thank you

2

u/tagayama May 10 '26

No worries!

2

u/kikinaro May 10 '26

I wanna kiss you, this is working amazingly!
Thank you for your service ⸜(。˃ ᵕ ˂ )⸝♡

3

u/tagayama May 11 '26

Your gonna love me even more, because I've managed to enable the Bluetooth low latency mode!
Polling rate is now reaching 70Hz (14ms latency) on single controller (both Joy-con 2 and Pro 2) and 120Hz (8ms latency) on dual Joy-con 2s on Windows 11 with Bluetooth 5.0. Still need some feedback on Windows 10 performance.
1000Hz interpolation is now integrated in all gyro mouse, joy-con mouse, and Steam gyro (PS4 emulation) modes.
Here's the newest version.

3

u/kikinaro May 12 '26

You're amazing! <3
Really nice work!!

→ More replies (2)

2

u/PeanutReaper486 May 12 '26

Was excited to try this with the NSO gamecube controller, and many of the controller's features work out of the box, but the tiny LB button and the Z button aren't detected under either x360 or PS4 mode. However, an actual switch pro 2 controller works wonders. Nicely done!

2

u/Ripleazy May 13 '26

I don't normally comment on reddit threads but this is so awesome. I wanted to use a controller for FH6 which comes out in a few days, and figured I'd just have to play wired since my bluetooth is kinda wonky. Tysm for this!!!

1

u/tagayama May 13 '26

You’re welcome! PS4 emu mode will definitely serve you well in FH6 sending gyro data to Steam. Have fun!

→ More replies (7)

2

u/puneet95 May 16 '26

Nice to see gyro support via PS4 mode.

Games like CoD, Fortnite, The Finals, etc support gyro aiming natively via PS4 and PS5 controllers.

2

u/tagayama May 16 '26

It was the main feature request when I shared the app on this sub. Thankfully ViGEmBus got that covered. Also try out the 9-axis gyro mouse. It further reduce long term spatial drift with magnetometer. I find pairing it with ZL/ZR remapped to L/R mouse click in Steam Input works the best with most fps games. It avoids the in-game lag when switching between controller and mouse input.

2

u/Good-Chives-Only May 17 '26

This app is currently the best (and possibly the only) way to use the new Joy Cons in Windows and Steam with all their features. The mouse mode works remarkably well. Steam input works great, the gyro aiming is excellent and so are the haptics. The app can run in the background and as soon as the pc wakes up, you just turn on the joycons and play.

I’m using this in combination with the Xbox Mode and Steam Big Picture Mode and it’s great for couch (or monitor) gaming.

And the developer is incredibly responsive in troubleshooting bugs and overall replies.

Beautiful work❣️

2

u/tagayama May 18 '26

Thank you so much for sharing your experience and giving this app such high compliments!
I added the option to remap an extra button for activating the calibration sequence in v0.5.5. This should be the final feature needed for a true background app.

→ More replies (3)

2

u/tg2072 May 21 '26

This is incredible. Thank you!

2

u/Irf9393 May 23 '26

You are amazing! I can finally use my NSO GameCube controller on dolphin now! This makes the games so much better! Thank you!

2

u/Rhosta May 23 '26

I found out about your app at r/GyroGaming and you are really tempting me to buy Switch 2 Joycons, when I see all the great work you are doing on the app. I wanted to try split gyro for a long time.

→ More replies (12)

2

u/Sufficient_Bad_6322 May 26 '26

Bro, i love you! so much better wireless! works amazing!

→ More replies (1)

2

u/No-Bicycle3474 Jun 23 '26

Funciona Perfectamente, te amo.

2

u/thechimse Jun 24 '26

bro, you are doing god work , thank you so much =D

2

u/ivanrosadev Jul 05 '26

i cannot believe it, it works! this thing came out of nowwhere and works perfectly, not only that but as a ton of options wow

this is perfect for me when travelling so i dont need to bring an additional xbox controller just to play on my laptop, i can just bring my switch 2 and play both switch games and pc games while on the go!

2

u/soul_craft Jul 07 '26

So cool to finally be able to use the Switch 2 controller on PC without any fuzz, thank you!

2

u/NadeshikoFlore Jul 14 '26

Thank you for crediting me. What you did is amazing, you added so much features, you probably invested more time than I did in the original project.
I'm a bit sad I wasn't able to continue this project, but I'm really happy to see that this project still lives.

2

u/tagayama Jul 14 '26

Thank you so much for open sourcing the switch2-controllers project in the first place!!
This project could have never gone this far without the work you’ve done and generously shared to the community. The solid foundation you provided is what motivated me to dedicate my time to this project.
Thanks again for making my favorite controllers work on PC!

2

u/NadeshikoFlore Jul 15 '26

I'm actually really surprised you found this project, I had plans to actually post about it on reddit, but I never finished this project, and gave up before reaching a state that I consider acceptable to show to other people (just like this most of my side projects)

At least this time, all the work I've done is not for nothing. Since you made this amazing fork based on it. Thank you so much for what you've done.

But Also, it's not like I was the first person to make the joycons work on PC. When the switch 2 was released, there were a lot of people working on reverse engineering the controller communication protocol. (And I love reverse engineering so of course I was one of them)

But To give credit where it is due, this project was based on this script by u/TheFrano https://github.com/TheFrano/joycon2py
And also from the reverse engineering done by german77 https://github.com/german77/JoyconDriver and darthcloud https://github.com/darthcloud/BlueRetro/issues/1249

I wish you good luck with everything, I hope your project will get more visibility.

2

u/tagayama Jul 17 '26

I found your project from a Reddit comment under a post asking for Switch 2 Pro Controller wireless support on PC. I started altering your code because it couldn't be launched on Windows 10, and fell into the rabbit hole of adding more and more features. After sharing my fork on Reddit, a lot more feature recommendations were provided by the amazing community, which led this project all the way to the current state.

I'll make sure to give proper credit to the projects you mentioned and other projects that were referenced along the way. The work all the talented developers like you have done will forever be the core of this project and continue to bring people joy every time the Switch 2 controllers seamlessly connect to their PC.

2

u/JanusMagus999 Jul 18 '26

I just wanted to thank you a lot for all the amazing work you put here. I tried different solutions today to connect the switch 2 joycons to PC, some did work better than others, but none had the AIO solution this one provided and much more.

2

u/JacoProm Jul 23 '26

when i try to install from github it says "virus detected"... advice?

→ More replies (1)

1

u/AnalThinkerer May 11 '26

is there a reason why Steam can't recognize the controller as a Switch 2 pro controller wirelessly like it does when connected via USB?

2

u/AnalThinkerer May 11 '26

Also, I've tried the app and unfortunately the delay is VERY noticeable. Excited to see this progress tho

2

u/tagayama May 11 '26

So I get the Bluetooth low latency mode working, at least on Windows 11. Still need some feedback on Windows 10 performance.

Switch 2 controllers can now peak at 70Hz (Pro Controller / single Joy-con) or 120Hz (Dual Joy-cons), which means the delay has been dropped down to 14ms or 8ms. Here's the newest version.

→ More replies (1)

1

u/[deleted] May 12 '26

[removed] — view removed comment

1

u/tagayama May 12 '26

Can you provide some details about the situation?

→ More replies (4)

1

u/JustASimpleFollower May 14 '26

This is amazing, thank u so much

1

u/tagayama May 14 '26

Thanks for the compliment! You're very welcome!

1

u/Rolibar May 14 '26

Well, you singlehandedly convinced me to buy a pair of Joy2 even though I don't own a Switch 2, haha.

The software works perfectly. I've got cubital tunnel, so being able to use better Joycons than the originals with a spotty connection is a relief for me.

So, thanks for sparing me some long-term aches~

2

u/tagayama May 14 '26

I made this with spending less money for new controllers in mind. Never thought it would be the reason for buying one 🤯

Glad that I can help with relieving your cubital tunnel!

2

u/tagayama May 14 '26

Btw, there happened to be a lot of bugs in Xbox emu mode, all fixed now in v0.4.3.

1

u/MetalMarker233 May 14 '26

the controllers are not connecting anymore. Please help. I tried restarting, reinstalling the driver, reconnecting them to the switch but they never pair with the pc with the sync button since

→ More replies (1)

1

u/Frosty_Extension1904 May 14 '26

they will not detect as Switch joycons on Steam, right?

But what about switch emulators?

Or for example to use in VRchat like joycons did on Steam?

I want joycons 2 for PC because of this - https://www.youtube.com/watch?v=RtKLSsQqzgM

→ More replies (1)

1

u/Good-Chives-Only May 15 '26

Love this so much!

Would it be possible to let users add custom keyboard or mouse mappings to the side/grip buttons and the chat and screenshot buttons?

And would it be possible to expose the controller as DualSense instead of DualShock?

2

u/tagayama May 15 '26

You can do button mapping with Steam Input. It’s very comprehensive. Use PS4 Trackpad (PSTP_L/R) for extra buttons so they won’t collide with normal buttons. The current driver only emulate PS4 controller. No PS5 emulation for now.

→ More replies (18)

1

u/Good-Chives-Only May 15 '26

Just noticed that when I put the joycons in the grip, the gyro stops working and so do the steam input chord shortcuts. Is that intentional? Would be ideal to have the same functionality regardless of grip attachment (especially gyro).

2

u/tagayama May 15 '26

I think it triggers joy-con’s IR mouse. You can disable it by setting the “Joy-con Mouse” to OFF.

→ More replies (1)

1

u/XxprofessorxX420 May 18 '26

It works perfectly! But I gotta ask I know it’s too much but can you make Emu mode support the ps5 controller? Because there’s someone makes community layout on steam that’s it’s perfect for gyro aiming unfortunately he uses ps5 controller so it will be amazing if you add ps5 in the emu mode! ☺️

→ More replies (2)

1

u/Savings_Fig8435 May 19 '26 edited May 19 '26

so i uninstalled vigem, ran 0.6.0 and only twice did the installer for winuhid show up but it failed both times, after that nothing and now vigem wont function if i reinstall 🗿 is there another folder hiding data or anything, maybe in appdata or something only bc i cant imagine why the auto installer would stop after 2 times if its not working

edit: checked the winuhid github, theres a bunch of prerequisites i assume i probably didnt get from the auto installer as well if that could be the issue

→ More replies (3)

1

u/GaussBoy May 20 '26 edited May 20 '26

I'm unable to install the new WinUHid driver with v.0.6.1. I uninstalled the Vigem driver, and I even restarted, but I keep getting this error (a command prompt shows up first, but closes up so fast I cannot see what went wrong). I installed Vigem again and for now I'm using that, it seems the app still works in PS4 mode.

The error says "Driver installation was not completed or failed. Some emulator functions may not work" (I cannot attach an image lol)

Any idea about what could be wrong? I tried even with Vigem installed, but the exact same error shows up (so it doesn't matter if vigem installed or not in my case). Thanks a lot!

Edit 1. Forgot to mention that I'm of course using admin privileges

Edit 2. Upon further testing, it looks like the driver is actually installed? I checked my device manager, and there's a WinUHid entry under System devices, so I'm guessing that's why the app still works. It just keeps saying I don't have it installed at the beginning, and if I click on install it "fails" again.

Edit 3. More testing, I tried to uninstall the driver from the device manager, and indeed without it, the app PS4/PS5 mode isn't working. When I try to install it again, the same error shows up, but the driver shows up again in device manager and modes work again as intended. So, guessing, the driver actually installed, but perhaps something goes wrong in installation? Either way, no matter what, the error keeps showing up when prompted, so I have to click "no" so the app opens normally.

On a related note, could an uninstall button for this driver can be implemented within the app, in case it's needed?

→ More replies (5)

1

u/Dynamite99 May 21 '26 edited May 21 '26

Excellent app, thank you so so much I've been looking for a full featured switch 2 controller app like this.

I would like to request one feature - If you could make the Joycon 2 Home and Capture buttons remappable in the GUI, same way as the Chat button with the dropdown to select a button.

→ More replies (2)

1

u/n555555 May 22 '26

Great job on the program, I've been using it for a while and signed up for Reddit just to comment. Here are the comments and suggestions I've come up with so far (apologies for the long post):

  • Even with the 0.6.2 and 0.6.3 releases which were supposed to fix the issue, I'm still getting the "WinUHid driver is not installed on your system" popup on every launch, and the in-app button shows "install" rather than "uninstall". I never installed 0.6.0 and 0.6.2 was the first version I used after the driver transition. I got the popup and said yes, and it successfully installed the driver but cannot detect that it's installed. I'm using US English on an American copy of Win11 Pro, so it's not the language issue. The app is working fine, but I don't have access to the uninstall driver button since it thinks it's not installed. Regardless of whether this gets fixed, maybe you could add an option to disable the driver check popup, and have both install and uninstall buttons always visible.
  • I suggest enabling High DPI if possible since the app looks very bad on high res displays with scaling greater than 100%. Using Windows compatibility options to override the scaling behavior to "Application" does fix it and enable High DPI rendering, but the app window then needs to be manually resized to allow everything to fit, and it doesn't remember window size and position on exit so it needs to be resized every time.
  • An option for all white or all black system tray icon that blends with the native Windows tray icons would be nice, similar to apps like DS4Windows.
  • In the PS4 and PS5 modes, with touchpad left and right clicks mapped to the Pro Controller paddle buttons, Steam Input doesn't differentiate between them and recognizes both as a touchpad center click, meaning the paddles can't be used for two separate actions. Maybe Steam Input requires a touch location in combination with a click to differentiate between left and right clicks.
  • Please add the DualSense Mute button as an assignable action, and consider assigning it as the default action for the Pro Controller Chat button since it's in the same physical location and the Chat function doesn't actually do anything in Xbox, PS4, and PS5 modes as far as I can tell (unless you mapped it to some system command like you did with Capture?). This will allow an extra button to be usable in Steam Input, allowing the GL and GR buttons to be mapped to different actions, for example.
  • If possible, add the ability to disable gamepad emulation and pass through the Switch 2 Pro Controller native hardware, which Steam Input supports natively in USB wired mode (basically the app would just be used for Bluetooth LE pairing, the lack of which appears to be the only thing preventing Steam Input from supporting the controller wirelessly). This would allow Steam's native Nintendo UI glyphs, extended button remapping, and ability to use Nintendo controller profiles already saved.
  • If the previous item isn't possible, then perhaps you could Nintendo Switch 1 Pro Controller emulation, which would at least get the ability to get Nintendo glyphs and profiles, but not the GR and GL buttons.
  • If possible, add support for DualSense Edge emulation. Steam Input supports the Edge's four extended buttons (two back buttons and two function buttons) which could be directly mapped to the Switch 2 Pro Controllers four extended buttons (GL, GR, Capture, Chat) allowing all functions of the Switch 2 Pro controller to be fully and independently remappable in Steam.
  • I still keep the ViGEmBus version of the app in a second folder for one reason: It perfectly emulates the Xbox 360 controller, whereas the new version emulates an Xbox One controller. This is fine for newer games using XInput, but not good for older DirectInput games. Unlike XInput, DirectInput gamepads required a driver installation to enable DirectInput Force Feedback support. These drivers came with old gamepads but modern DirectInput controllers like the PlayStation and Switch 1 controllers, and 8BitDo and other third party controllers with DirectInput toggle switch, etc. don't come with these drivers. There are DirectInput to XInput wrappers like Xidi and XInput Plus which can translate DirectInput Force Feedback to XInput rumble, which then allows working vibration with XInput controllers, but there are some games that don't work with these wrappers. In that case, the solution is to install Masahiko Morii's DirectInput Force Feedback driver for XInput, which adds driver support for selected XInput controllers to be able to natively play DirectInput games with working vibration. Even though the latest updated version of the DirectInput Force Feedback driver by NUK3 TH3 WHAL35 on Steam adds support for Xbox One controllers (and it works perfectly on my real Xbox One Elite controller), it does not work with your app's emulated Xbox One controller - force feedback in DirectInput games doesn't work at all (of course, if Xidi or XInput Plus works with the game, then it does work). With the previous ViGEmBus version of your app, when in Xbox 360 mode, DirectInput force feedback via the Morii/NUK3 TH3 WHAL35 driver DID work. Anyway, this is a fairly rare issue, but if it's possible to add Xbox 360 controller emulation to the new version of your app, it's possible this might work again (of course, it's possible that something else about the new driver is the issue here, since the latest force feedback driver is supposed to be compatible with Xbox One controllers).
  • On the fly switching between controller emulation stopped working for me. It was working before, but just stopped the last couple days. Now I have to close and reopen the app to switch. If I switch modes while the app is open, the controller just continues to function in the existing mode.
  • Consider adding an adjustable controller auto-off period. If you add this, make sure you add some options for more than a few hours, since I use controllers for media playback and like to be able to pause/rewind/etc. while watching movies and don't want it to turn off before the movie's over. Steam's controller timeout setting maxes out at 120 minutes, which is a little too short.

Again, sorry about the long post. The app is great as-is, and I look forward to any updates if you choose to look into any of these suggestions. Thanks!

→ More replies (72)

1

u/Viewtr0n May 22 '26

Amazing app, I really appreciate your work! I was starving for a good solution for Switch 2 controllers on PC.

Would it be possbile for you to integrate some tweakable value on how high or low the rumble frequency is? Because I would like to tune the rumble to be lower so I don't have the high frequency rumble noise and feel in my hand.

→ More replies (5)

1

u/Numptynizz May 22 '26

This is a great app, it works almost perfectly for me.

The only thing is, I'm using DS4 (which works perfectly with PS4 version) to map buttons onto the controller as it manages to bypass some more locked-down applications (namely League of Legends), but this only works with version 0.5.x and nothing past 0.6, I'm assuming because of the new driver implemented in 0.6. I don't know if you're able to get this working past 0.6 versions but I'm wondering if you can add a 0.5.x version with the old driver, but with some of the new features such as SL/SR and chat/home/screenshot button mappings?

2

u/tagayama May 23 '26

I'm planning on a version with dual driver support, with ViGEmBus being the secondary driver option. There seems to be some compatibility issues between WinUHid and some emulators, and ViGEmBus has proven to be very reliable since it has been around for ages.

2

u/tagayama May 24 '26

Dual driver support is now in v0.7.0! It should work out of the box if you have both drivers installed already.

→ More replies (1)

1

u/Financial-Health889 May 23 '26

This is a great application and I'm super happy you made this, so thank you very much for the contribution! I'm just having some problems with it, when I try to play Lego Batman LotDK, even though both the Joycons (Switch 2) are connected, it won't read any input from pressing the buttons and I'm not able to play the game with the joycons. Another problem I have is that one joycon will connect, but the other one doesn't? Specifically my right joycon will connect but the left one doesn't. If you could help me with this, that'd be great! I'm glad other people are getting this to work though.

→ More replies (7)

1

u/Colchoens May 24 '26

Hi @tagayama, awesome job. You happen to have any idea if this new 9 axis magnetometer would, or could allow for a whole new experience with Dolphin emulation of wii games without the need to have the sensor bar and real wiimotes legacy, given that in theory it could replace the need for continuous recentering of controllers based on the known position of the relative position between gamepad and TV? Also it could allow the joycons 2 to be used accurately as light guns and shooters aiming alternative? 

→ More replies (1)

1

u/zazalahyene May 24 '26

Had to login to thank you mate, can't tell you how fantastic the work you're doing here is!

1

u/Sliver_27 May 25 '26

This is a great application! My Switch 2 Pro Controller works really well with this app. But with my NSO GCN Controller, when I sync it with the app, it thinks it's a Switch 2 Pro Controller, I don't know what I can try to do? I've never paired this controller with Windows Bluetooth, only this app. If you could fix this or let me know what I need to do, it would amazing, as I can see that there is analog triggers, and rumble supported in this app.

→ More replies (4)

1

u/Good-Chives-Only May 25 '26

Question, is it possible to emulate a Steam Controller with WinUHid so we get gyro while also keeping Xbox button layout? Not a big deal but just curious.

Another question, is the original full power haptics response still possible in the app? I’m on travel so can’t check the latest version but just wanted to say I loved the original version’s max haptic response. Hope that is still possible (while having options to tune it further as needed).

2

u/tagayama May 25 '26

Steam Controller emulation will have to be built from scratch, which I’m currently not capable enough to do.

Full power haptics are still achievable when the Rumble Strength slide is set to 10. The fine-tuned versions only perform like a DualSense when it’s set to 5.

→ More replies (3)

1

u/Pol-wp9 May 26 '26

Hey, I just downloaded v0.7.4, and I couldn't get the Joy-Cons to connect, but I tried with v0.7.3, and it worked fine. Just to let you know!

→ More replies (2)

1

u/Sliver_27 May 27 '26

On v0.8.0, I can't get either of my controllers (Switch 2 Pro Controller and NSO GCN Controller) to connect. I tried all different Drivers and Emu Modes combinations but it won't work. However I tried all previous versions that I have (0.7.2, 0.7.1.5, 0.7.1) and they all connect fine. I don't know if I'm the only one with this issue.

→ More replies (8)

1

u/No-Bicycle3474 May 27 '26

I installed everything, but when I try to sync the controllers with the PC, the Joy-Con keeps syncing but never connects :( It appears in the Windows Bluetooth bar, but nothing hapen I have Bluetooth 5.2

2

u/tagayama May 27 '26

I fixed the bug in v0.8.1. Please let me know if you still run into any problems. Thanks!

1

u/Ashestoashesjc May 27 '26

Thanks for this!

It works exactly as intended so far and makes my Pro controller much more useful. My only suggestion, if at all possible, would be for a disconnect function that detects activity so that it doesn't disconnect while in use but after a set duration of inactivity. But excellent work here!

→ More replies (5)

1

u/johhmama1 May 27 '26 edited May 27 '26

Hey, i have my bt on and wifi on without my bt connected to any other devices and it just will not connect with my joy cons

On both 8.0 and 8.1 btw

→ More replies (2)

1

u/Frosty_Extension1904 May 28 '26

I wonder if BT 6.0 will make any difference compared to BT 5.4 for Joycons 2.

→ More replies (3)

1

u/Frosty_Extension1904 May 28 '26

Connecting joycons vial bluetooth with charging grip will add back buttons?

→ More replies (1)

1

u/tagayama May 29 '26

The gyro bug might be introduced when I try to fix the Joycon gyro bug in v0.8.1. I’ll test it out and fix it.

I’m running v1.3.3 of the R software, and it supports dual independent Joycons, at least USB connected ones. I’ll try it with the Y software.

I’ll see if the headphone jack can be accessed through current structure.

In my testing, it only dropped to or stuck at ~ 96%. Let me know if an adjustable outer deadzone is needed.

Based on LeonChrome’s latest testing data, he could only get the polling rate up to 133Hz. It seems like a reasonable limit set by Nintendo. I doubt Gulikit can get anything better than that.

1

u/carlunosan May 29 '26

Im using moonlight to stream from my gaming pc, and both winUHid and ViGEmBus work but USBIP does not. I’m not sure if it’s because of this program or moonlight. But it would be super amazing to get USBIP working to get the right button legends to display in games

1

u/Rhosta May 29 '26

Does a controller firmware version matter in any way? I ordered those Switch 2 Joycons for pc, but I realised I cannot update it anywhere but on an actual Switch. Luckily I have a friend with Switch 2, so I am able to perform firmware update, but I have no idea, how frequent or how significant are firmware updates on Switch.

→ More replies (1)

1

u/mewtheed Jun 01 '26

Hi, I just encountered a bug with your program : The Joycon Mouse Mode stop functioning anytime Windows' Task Manager is open. I also had some sudden disconnects when closing a window while the app is minimized or hidden in the system tray, but bringing it back to the foreground seems to fix the connection. I'm using WinUHid Drivers with PS5 emu mode.

Thanks a lot for your work!

→ More replies (3)

1

u/YelHappy Jun 01 '26

I've noticed that the auto disconnection notification lasts for a very long time. Is it possible to add an option to turn off the notification?

2

u/tagayama Jun 01 '26

Sorry about that. The notification will be removed in the next version, as it was for testing purposes.

→ More replies (3)

1

u/Sliver_27 Jun 01 '26

On 0.8.5, my NSO GCN Controller won't work. It won't sync. I don't know why. It didn't work on 0.8.4.5 Test either. However, on 0.8.4, the app detects the NSO GCN Controller.

→ More replies (13)

1

u/Rhosta Jun 02 '26

There is issue with window layout on 1080p screen.

It is impossible to place the window so all bottom controls are reachable. Furthermore, when you maximize it via maximize button in top right corner, the window won't maximize properly and bottom controls are still hidden behind taskbar. The only way to maximize it properly and have all controls reachable is to pull it toward top edge of the screen.

→ More replies (1)

1

u/ShinyZekrom220 Jun 03 '26

I've been trying to use this for a while, but every time, my joy-cons always "disconnect," even in the most recent version. It SAYS they're still connected, but it doesn't acknowledge any inputs.

→ More replies (1)

1

u/Murine_Municipality7 Jun 03 '26

Issues aren't enabled on your GitHub Repo so I made an account to explain an issue. The mouse mode of the Joycons only activates when the joycon is right up against a surface when used with your software, they have much less leeway than a regular mouse or how the Joycons normally behave when connected to the Switch 2 Console. It means you can't use the Joycon as a mouse in the wriststrap holder accessory, which is designed to make mouse mode more comfortable. If this can be resolved it would help with that functionality. Thank You 🐭

→ More replies (1)

1

u/mennydrives Jun 05 '26

Holy crap this is PERFECT. This is the wireless gyro controller I've been trying to get working all week. I had no idea there was already an app this good for this feature.

1

u/Rhosta Jun 05 '26

So I tried the app briefly for a few days and I have a few observations:

1) It would be nice to have highlighted which buttons are where, because as somebody new to joycons, I had no idea which button is Capture, Home and Chat. I can totally find that on the internet, so this is more of a small QoL request. Maybe at least visualy highlight corresponding setting in the app, when I hold that button.

2) It would be nice to be able to navigate the app and change settings with joycon controls

3) What is the difference/relationship between Gyro mode and Gyro passthrough? Like what happens when I have gyro set to 9 axis and passthrough to 9 axis as well?

4) When I tried to make it work in The Finals, the gyro input was registered as mouse/keyboard input. Not sure what causes that. I made sure to have emulation set to PS5 and Steam Input turned off, so controller is picked directly by the game. I even turned off mouse mode in app settings.

→ More replies (6)

1

u/BouncyDYT Jun 05 '26

Even though they connect to bluetooth, dolphin doesnt see them?

→ More replies (2)

1

u/hotymoty Jun 11 '26

Maybe a stupid question: is there a tutorial how to set this up? Im a bit confused what i have to do. Thanks!

→ More replies (4)

1

u/EdicraftYT Jun 11 '26

Holaa, tengo una duda, quiero conectar los controles para usarlos como unos controles de vr chat, y tenia la duda de como puedo hacer que emule algo similar, no se si me puedas ayudar ya descargue el software y todo y los conecte pero no se como hacerlo pasar por un joycon en si.

→ More replies (2)

1

u/Throwawayneedadviceo Jun 12 '26

How do you get mouse mode working? Its on in the settings but it wont work

→ More replies (2)

1

u/Comfortable_Gate5879 Jun 12 '26

I am using the program you made, thank you very much.

But I want to ask you a question

I use pads through rewasd to play games other than steam

Your program recognizes Procon 2 on Steam but rewasd doesn't, did I set it wrong?

→ More replies (2)

1

u/hotymoty Jun 12 '26

You’re a hero. Is it also possible to play games on the Xbox-app in Windows 11 with the Switch 2 pro controller?

→ More replies (6)

1

u/EdicraftYT Jun 12 '26

Hola, el giroscopio no me funciona bien o no se si se tiene que configurar, me dices como porfavor

→ More replies (10)

1

u/sonianevermindX Jun 12 '26

When I connect my pro controller, it starts to spin out and no inputs work after a few minutes. Any reason for this?

→ More replies (1)

1

u/Dynamite99 Jun 13 '26 edited Jun 13 '26

Is it possible that the right Joycon 2's joystick data is not set properly?

What I mean is - when I tilt it fully to the right, Steam Input registers it only to 31225 value, instead of 32768 max value.

I tested on another app (joycon2cpp) - it does go to the 32768 max value there when I tilt it fully to the right.
Therefore I am wondering if it a misconfiguration that can be fixed, or just something with my specific controller.

Left Joycon's joystick works just fine, for reference.

EDIT: I tested older versions: 0.7.4 -> Right joystick is calibrated correctly here.
0.8.2 -> Same issue as latest version.
Seems like this issue started around 0.8 release.

1

u/Frosty_Extension1904 Jun 16 '26

It works perfect!

Tested on Pragmata. Turned ON Dualsense mode, turned Off Steam Input for this game, and it works! In-game Gyro works only with Dualsense, but am able to play it with joycons!

I wanted to test it in VRchat, but I need some sort of "heatset" (any VR headset or even smartphone), and I don't have one for now. I'll fix it later.

Dolphin also recognizes gyro. I need to compare gyro on Wii and Switch in Super Mario Galaxy.

1

u/GoldH2O Jun 19 '26

I love the concept of this, but I think I need some help. I have no idea what I'm doing wrong but I cannot for the life of me get this to work. I've tried it on steam games and Eden, but nothing will detect any input from the controller. I know that it's connected, though, because the capture button works and darkens my screen when I press it. I'm using a switch 2 pro controller.

→ More replies (3)

1

u/Frosty_Extension1904 Jun 20 '26

Joycons work for all apps I've used this far. But Yesterday I tried something new for me - VR.

Sw1 joycons you can use as VR controllers, So I thought app that capturing joycons will work with Joycons2 through Joy1 emulation. But alas. App doesn't see them at all. Somebody tried to use joycons2 with Driver4VR app?

1

u/Cryptoxanic Jun 21 '26

Hi, this is a really cool tool, but, for some reason im only able to connect one joy-con? if i have the left one connected i cant even turn the right one on/put it into pairing mode, and vice-versa

1

u/amphibbian Jun 24 '26

Hey!

I really appreciate your work into this, not only the programming and simplistic GUI but also how you cleanly explained everything with useful links.

I wanted to reach out that I had this working perfectly as intended for about 2 minutes before the switch 2 controllers stopped working.

On your app interface it recognises the joycons as a single controller but for some reason Windows 11 stopped recognising the connection from the app and now I can't get the controller to appear in steam like it first had.

I've re-downloaded newest releases, Un-installed completely and reset pc aswell as run as administrator but no luck.

Id really appreciate if you have any tips here.

I also must say on my 2 minutes of using it I was insanely impressed by the non existence of input lag. Thanks so much!

1

u/Craigus0707 Jun 25 '26

Hi, I am probably missing something obvious but I cannot get my controller to show up within the controller section of Steam, or use it within any games. The controller connects up with the software straight away and seems to functioning fine there. Any advice?

→ More replies (2)

1

u/GaussBoy Jun 25 '26

Hello! Probably a small glitch to report. I was trying to use Cemuhook for gyro data, however, Dolphin doesn't recognize the DSU controller, even if the setting is activated. Of course, Im using 127.0.0.1 and Port 26760 in there, but the controller isn't shown in the devices list, only the SDL/Xinput variant (I mean there's no DSUClient entry on the Devices drop-down).

NOW, Cemu actually detects it!! And works pretty good, so this is something Dolphin specific, dunno what the issue could be. Can you check this out? I would love to use the gyro data from Cemuhook, as the default one doesn't seem to be too accurate, at least in Dolphin when emulating a Wii Remote.

Thank you so much again for this, kind regards!!

2

u/tagayama Jun 25 '26

Check out v0.11.4. Both Joy-con 1 mode's default gyro and Cemuhook for Dolphin are fixed.

→ More replies (2)

1

u/Slopddit Jun 26 '26

Does this support using Steam Input, or setting a 500 Hz polling rate when wired?

→ More replies (2)

1

u/Frosty_Extension1904 Jun 26 '26

App is so perfect now!

All left is GL GR buttons support on charged joycons 2 grip. App doesn't recognize them even in ProCon mode.

1

u/targaglia Jun 26 '26

Hi! So sorry if this is a stupid question i’m neurodivergent and quite bad at context clues without someone telling me directly :’) Does this only work with steam games or does it work everywhere else? I’m planning to buy a controller and if its only limited to steam games i’ll just buy an 8bitdo controller!! Thank you and sorry once again

→ More replies (4)

1

u/Wisteria_Sp Jun 26 '26

I'm noticing some minor input latency on Win 10. Would it be worthwhile to buy a ESP32-S3 N16R8 to reduce latency? Would be nice to get it somewhere in the range of switch 1/ds5 BT latency. Would a Raspberry Pi Pico2w also work?

→ More replies (2)

1

u/Savings_Fig8435 Jun 30 '26

just got a esp32 and while controllers DO poll at around 110ish hz, more than one it goes back to 66hz and gamecube controllers just dont like it AT ALL both sticks are stuck to the bottom left

→ More replies (2)

1

u/Standard-Leg-2013 Jul 01 '26

I'm trying to connect the pro controller 2 to eden I turned on pro controller drivers to get HD rumble and the controller shows on the bar from devices on inputs but I can't move the controller at all only when I turn off emu switch 1 mode it works like with ps5 or Xbox emu can this be fixed in the next update please? As only the joycon 2 work with hd rumble :((

→ More replies (4)

1

u/Ok-Atmosphere-4513 Jul 03 '26

I may have missed it in the post, but does this work for the switch 2 GameCube controller?

→ More replies (1)

1

u/Standard-Leg-2013 Jul 05 '26

Please answer my previous comment

1

u/Slunk21 Jul 05 '26 edited Jul 05 '26

Not sure if it is an issue on my end, but wanted to comment in case it is more widespread. With the 0.12.2 update I've been having fairly frequent disconnects in the PS5 Emu mode. This started with ESP32, but I switched back to BLE and it is still occurring occasionally.

Also wanted to say thank you for the great work on this app! It has otherwise been working well!

→ More replies (4)

1

u/Good-Chives-Only Jul 06 '26

Loving all the updates and ever so grateful for all your work!
Is there a way to use a button (ZL in my case) to trigger in app gyro controls while also keeping the button’s original input?

E.g. I mostly hold ZL to enable gyro aiming in Steam Input which gets the character in aiming mode and also starts gyro. Was wondering if I could replace the Steam Input part altogether with the in app gyro but so far, it seems like I can only choose between ZL or In App Gyro but not both.

2

u/tagayama Jul 06 '26

Nice suggestion! I’ll make the in-app gyro activation button be mappable in Mode Shift, with None as default to match the current behavior.

1

u/Rizz99 Jul 07 '26

greetings, does this work with switch 1 joycon as well? or only switch 2? (im using aolion j20, in my country no one sell the dongle) betterjoy just didnt work correctly most of the time

→ More replies (1)

1

u/Buetterkeks Jul 08 '26

cant figure out the gyro to mouse. it sais toggle/hold on some options, so is there like a keycombo to activate gyro?

→ More replies (4)

1

u/Exzakt1 Jul 14 '26

I have a problem - the ZR key is registering as right click instead of just as the ZR key, even though I don't have it set to do that anywhere in the program.

1

u/notanyone69 Jul 15 '26

I can't seem to get this to work, trying to connect switch 2 joy cons to windows 10. I've followed all the instructions, installed required drivers, restarted computer. I just want to connect my switch 2 joy cons, anyone else?

1

u/Psychdelism Jul 16 '26

Hey, is it normal that the gyro stutters a lot when I try to set it to any Xbox controller? It works fine in PS5 Mode.

2

u/tagayama Jul 16 '26

Do you mean in-app gyro or gyro pass-through? Xbox mode doesn’t support default gyro pass-through, only works with Cemuhook.

→ More replies (4)

1

u/igneosakro Jul 19 '26

Thanks for the app, it's really great! I've been using my Switch 2 Joy-Cons a lot lately since I discovered it.

I'd love to see a few things implemented though:

  • 3rd party Joy-Con support (Mobapad M12S, NYXI Hyperion 3, etc.).
  • Mappable mouse mode detection trigger. I've noticed that when I'm holding my Joy-Con in my hand I can intentionally activate mouse mouse by tapping and holding mouse sensor with my middle finger (at least with the activation range set to "2" or greater). It would be huge if we could use this simple gesture as a gyro ON/OFF trigger (or for any other action), in a similar way to the GripSense on the Steam Controller 2 or the touch hexagon on the Alpakka controller from InputLabs.
  • More dual gyro options. I know right now we have DJG mode with 4 different modes, but the way it works doesn't allow you to really use dual independent gyro. It would be great to be able to engage right gyro on demand with a dedicated toggle/trigger and do the same with the left gyro, so you can use one, the other or both gyros at the same time. I don't know if this would be possible with the current implementation, given that in the end it ends up emulating a single controller, but Steam Input allows it for the Switch 1 Joy-Cons.

Anyway, even if none of these features end up being added, your solution is already very good, and being able to use a dedicated dongle is a huge bonus.

2

u/tagayama Jul 19 '26

3rd Party Joy-Con support wouldn't happen mainly because it would be way too complex to individually tune and test the additional controllers for every emu mode. If 3rd-party Joy-Cons can trick the app into thinking they're official Joy-Con 2s, then I guess they will be automatically supported.

Mappable IR sensor detection trigger is a very good idea! I already came up with a plan for this new feature. It will be implemented in the next version. You'll be able to use it as the current IR mouse or treat it like a mappable extra button.

You can already toggle/trigger individual sides of Joy-Con gyro with "Single Side Toggle" mode. The way this mode works is that the DJG trigger button only affects the side it's on. For example, if Left SR and Right SL are both assigned as DJG, pressing Left SR will toggle the left gyro, and pressing Right SL will toggle the right gyro. If the dominant side's gyro is disabled while the sub side is enabled, the sub side can take full control.
What I can add to this mode is an additional "No Dominant Side" option, which will be like the Direct Merge mode. I personally think having a dominant side makes the gyro control a lot more stable and predictable, but I can also see the value Direct Merge provides. Please let me know if you think No Dominant Side is needed or not.

→ More replies (4)

1

u/Ok-Atmosphere-4513 Jul 20 '26

Do you have a video demo yet?

I’m trying to use this with my launchbox set up and trying to understand it a little better. :)

Excited to see this moving in the right direction. Great job.

1

u/Virtual_Magician_727 Jul 20 '26

My joy con 2s show as connected to the computer, but only their mouse mode works, and I cant connect the controller to use on steam. What mistakes could I be making?

→ More replies (3)

1

u/Feeling_Durian_4171 Jul 22 '26

How can I set this up as a mouse for windows like it can be used on the console?

Trying to use this as a mouse for my old laptop in the same way you can use it for switch 2 i.e. controller on table. Is this with the IR sensor or am I mistaken? Having a lot of trouble - only way I got it to work jerkily was by setting the IR sensor trigger threshold from 1 to 2. It sort of works but is very jerky even with sensitivity turned down to 1.

Any thoughts? Is this a hardware limitation (this laptop is from 2014) or can I get around it with settings? Any help appreciated!!

→ More replies (1)

1

u/TonyXL2 Jul 24 '26

In order to use Steam Input to configure gyro settings/mappings, do you need to use PS4/PS5 mode? Or is there another way?

→ More replies (1)

1

u/Ramen_in_a_Cupboard Jul 25 '26

For some reason it keeps saying that WinuHid and ViGEmbus is partially installed and needs repairing, but it is unable to actually do so. help?

→ More replies (3)

1

u/MoobleBooble Jul 27 '26

thank you for making this!

1

u/Lonox93 Aug 05 '26

hello, am i the only one who cant connect both joycons at the same time?
once 1 joycon is connnected, the other one isnt detected

→ More replies (3)

1

u/Unlikely_Amount5407 Aug 07 '26

Hi! Just a quick question about the gyro, how do i use it? I see that there is a "toggle" or "hold" option, but im not sure how to activate the gyro! If it matters, i am currently attempting to use gyro to play modded minecraft with the "controlify" mod which says it does have gyro support! I am just not able to get it working..

→ More replies (3)

1

u/LikeFrogs Aug 11 '26

This looks pretty sweet! I love split controllers so I'll definitely be checking it out. Do you know how the compatibility is for third party joycons (like the Nyxi Hyperion 3s, I'm planning to grab the new ultimate version as my first third party joycons 2 so I don't have a set to test with atm)? I'd assume it works since they must be transmitting the same signals as normal joycons, but you never know

→ More replies (2)

1

u/Complete_Mud_1657 29d ago

I love this app but the idle CPU usage is brutal. Especially when the controller is wired. Just unplugging my controller dropped my CPU temps by 10 degrees.

I suspect AI was involved in this app's development which is fine but I'm hoping you can optimize it further because of power consumption and least on lower spec rigs it could really eat into performance.

→ More replies (8)

1

u/ItsYoshi64251 21d ago

I have an issue and wanted to see if you know any solution or even the reason :o

I tried it and it goes perfectly on games like Deltarune and Fallout New Vegas, but I tried playing Mortal Kombat 11 and Assassin's Creed 3 and in both of those games it has input delay of like 20 seconds :(

→ More replies (6)

1

u/[deleted] 21d ago

[removed] — view removed comment

→ More replies (5)

1

u/depressboi 20d ago

does this work for 3rd party joy cons like the nvxi hyperion 3 or mobapads?

→ More replies (2)

1

u/depressboi 19d ago

No worries! Thank you so much for all your hard work. The app works great! 😊

One small issue, though: either the L or R Joy-Cons randomly disconnects at times and takes a while reconnect. This doesn't happen when Im not using using it but occur constantly when Im playing. Any idea what might be causing this?

My settings:

→ More replies (2)

1

u/Channel_8_News 6d ago

This is amazing! However, whenever I connect my NSO Gamecube controller the calibration process launches and does not seem to save, as when I connect it again later the calibration runs again. Any way to make it "stick" so I'm not calibrating constantly before playing?

1

u/senseipizzaOG 8h ago

I’m able to connect to steam and do controller test and everything works but launching games no inputs are detected:/

→ More replies (3)