awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
Davidobot avatar

Davidobot/BetterJoy

0
View on GitHub↗
4,698 stars·387 forks·C#·21 views

BetterJoy

BetterJoy is a software layer and driver for connecting Nintendo Switch Pro Controllers and Joy-Cons to a Windows environment via Bluetooth or USB. It functions as an XInput controller emulator and gamepad input mapper, translating Nintendo Switch controller inputs into XInput signals for use with PC games and emulators.

The project includes a gyroscope mouse emulator that maps the internal gyroscope of Nintendo Switch controllers to system mouse cursor movement. It also provides a configuration interface for remapping controller buttons to custom keyboard keys.

The software covers hardware connectivity for wireless and wired controllers, input translation for gaming software, and the conversion of gyroscope data into relative screen coordinates.

Features

  • Switch Controller Mappings - Translates Nintendo Switch controller inputs into XInput signals for broad compatibility with PC games.
  • XInput Emulators - A driver that translates Nintendo Switch Pro Controller and Joy-Con inputs into XInput signals for PC games and emulators.
  • Controller Integration - Facilitates the setup of Nintendo Switch controllers for use with emulators like CEMU, Yuzu, and Dolphin.
  • Controller Connection Managers - Manages the wired connection lifecycle between controllers and the computer for low-latency input.
  • Bluetooth Gamepad Drivers - Provides a software layer for connecting Joy-Cons and Pro Controllers via Bluetooth or USB.
  • Emulated Input Mappings - Standardizes input data from diverse controllers into formats compatible with various game emulators.
  • USB HID Input Managers - Reads raw HID data packets via USB and Bluetooth to capture low-latency controller states.
  • Wireless Peripheral Pairing - Enables the pairing of wireless controllers to the system without requiring a physical cable.
  • Input Device Emulation - Maps non-standard Switch controller inputs to generic XInput profiles for game compatibility.
  • Controller Input Mappers - Provides a mapping interface to bind physical controller buttons to emulator actions and keyboard keys.
  • Mouse Control Automation - Translates gyroscope movement from a controller into mouse cursor movement for system navigation.
  • Gamepad Button Reassigners - Ships a configuration interface for remapping controller buttons to keyboard keys and emulator inputs.
  • Gamepad-to-Keyboard Mappings - Binds controller button presses to synthetic keyboard scan codes for system-level hotkeys.
  • Input Remapping - Binds controller buttons to custom keyboard keys to extend input functionality.
  • Gamepad-to-Mouse Emulations - Translates three-axis gyroscope rotation data from controllers into system mouse pointer movements.
  • Gyroscope-to-Cursor Mapping - Provides the ability to navigate a computer using the internal gyroscope of a Nintendo Switch controller.

Star history

Star history chart for davidobot/betterjoyStar history chart for davidobot/betterjoy

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does davidobot/betterjoy do?

BetterJoy is a software layer and driver for connecting Nintendo Switch Pro Controllers and Joy-Cons to a Windows environment via Bluetooth or USB. It functions as an XInput controller emulator and gamepad input mapper, translating Nintendo Switch controller inputs into XInput signals for use with PC games and emulators.

What are the main features of davidobot/betterjoy?

The main features of davidobot/betterjoy are: Switch Controller Mappings, XInput Emulators, Controller Integration, Controller Connection Managers, Bluetooth Gamepad Drivers, Emulated Input Mappings, USB HID Input Managers, Wireless Peripheral Pairing.

Which projects share features with davidobot/betterjoy?

Projects with overlapping indexed features include: atar-axis/xpadneo — xpadneo is a Linux kernel driver that enables Bluetooth Low Energy connectivity and input support for wireless Xbox… sezanzeb/input-remapper — Input Remapper is a Linux tool that reassigns physical keys, buttons, and axes on keyboards, mice, and gamepads to… ndeadly/missioncontrol — MissionControl is a suite of management utilities designed for pairing, configuring, and managing third-party… mamedev/mame — MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and… pwr-solaar/solaar — Solaar is a device management tool and configuration suite for Logitech wireless peripherals on Linux. It serves as an… imbushuo/mac-precision-touchpad — This project is a Windows Precision Touchpad driver and Apple Trackpad HID driver. It functions as an input device…

Projects sharing features with BetterJoy

These projects share indexed features with BetterJoy. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • atar-axis/xpadneoatar-axis avatar

    atar-axis/xpadneo

    2,539View on GitHub↗

    xpadneo is a Linux kernel driver that enables Bluetooth Low Energy connectivity and input support for wireless Xbox gamepads. It functions as a low-level driver for managing wireless controller connections and report descriptors via the Bluetooth protocol. The project includes an input mapper to override default button mappings and disable kernel dead zones, providing raw axis data for high-precision movement. It also features a haptic controller for managing rumble intensity and high-frequency trigger force feedback, alongside a gamepad mouse emulator that converts stick and button inputs in

    Cdkmsdkms-packagesgamepad
    View on GitHub↗2,539
  • sezanzeb/input-remappersezanzeb avatar

    sezanzeb/input-remapper

    5,389View on GitHub↗

    Input Remapper is a Linux tool that reassigns physical keys, buttons, and axes on keyboards, mice, and gamepads to custom actions or keypresses. It intercepts raw input events at the kernel level and injects remapped events through synthetic devices, enabling real-time customization without modifying system-wide settings. The tool supports modifier-aware key combination mapping, allowing complex shortcuts that preserve modifier timing. It also provides gamepad-to-keyboard mapping, mouse button reconfiguration, keyboard layout enhancement, and accessibility input customizations. A daemon-clien

    Pythongamepadgamingkeyboard
    View on GitHub↗5,389
  • ndeadly/missioncontrolndeadly avatar

    ndeadly/MissionControl

    3,197View on GitHub↗

    MissionControl is a suite of management utilities designed for pairing, configuring, and managing third-party Bluetooth controllers on a gaming console. It functions as a controller manager, hardware configuration tool, and input remapping utility. The project features a Bluetooth identity spoofer that overrides the host adapter name and address, allowing controllers to be shared across multiple devices without repeating the pairing process. It also provides a translation layer to redirect physical button presses to different logical system inputs. The software covers hardware configuration

    C++atmospherebluetoothcfw
    View on GitHub↗3,197
  • mamedev/mamemamedev avatar

    mamedev/mame

    9,929View on GitHub↗

    MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and consoles to run original software on modern devices. It functions as a retro gaming preservation framework for managing, verifying, and archiving ROM sets and disk images to ensure long-term software accessibility. The project features a system debugging tool for inspecting emulated memory, CPU registers, and execution flow via breakpoints and disassembly. It also includes a Lua-based automation layer that exposes core system state and hardware controls for custom behavior and anal

    C++
    View on GitHub↗9,929
  • Compare all 30 related projects→