All Projects → bwRavencl → ControllerBuddy

bwRavencl / ControllerBuddy

Licence: GPL-3.0 license
Highly advanced game controller mapping

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to ControllerBuddy

OpenHornet
OpenHornet 1:1 F/A-18C Simulator Repository
Stars: ✭ 167 (+255.32%)
Mutual labels:  flight-simulator, dcs-world, flight-simulation
mi-360
Xbox360 controller emulation for Xiaomi Gamepad, with vibration support
Stars: ✭ 118 (+151.06%)
Mutual labels:  gamepad, xinput, xbox360-controller
gods4
Golang library to interact with Sony DualShock4
Stars: ✭ 26 (-44.68%)
Mutual labels:  game-controller, dualshock4
CtrlUI
CtrlUI (Controller User Interface) is a Windows application, game and emulator launcher for your game controller, DirectXInput converts your game controller to a Xbox (XInput) controller, Fps Overlayer is a tool that shows the frames per second and the cpu, gpu and memory information.
Stars: ✭ 39 (-17.02%)
Mutual labels:  xinput, dualsense
DualSenseWindows UE4
Unreal Engine 4 port of the Windows API for the PS5 DualSense controller created at Ohjurot/DualSense-Windows
Stars: ✭ 25 (-46.81%)
Mutual labels:  gamepad, dualsense
xbox360wirelesschatpad
Xbox 360 Wireless Chatpad for Windows
Stars: ✭ 58 (+23.4%)
Mutual labels:  xbox-controller, xbox360-controller
DS4Windows
Like those other ds4tools, but sexier
Stars: ✭ 5,958 (+12576.6%)
Mutual labels:  gamepad, dualshock4
ArduinoXInput AVR
AVR boards package for the ArduinoXInput project
Stars: ✭ 53 (+12.77%)
Mutual labels:  xinput, xbox-controller
fixed-wing-sim
Matlab implementation to simulate the non-linear dynamics of a fixed-wing unmanned areal glider. Includes tools to calculate aerodynamic coefficients using a vortex lattice method implementation, and to extract longitudinal and lateral linear systems around the trimmed gliding state.
Stars: ✭ 72 (+53.19%)
Mutual labels:  remote-control, flight-simulator
cAndroid
cAndroid is tool for control your PC by Android phone
Stars: ✭ 23 (-51.06%)
Mutual labels:  remote-control, game-controller
dcs-input-command-injector
DCS Mod to add custom input commands in your user profile instead of by modding the game for each aircraft. Prevents commands from being lost when DCS updates.
Stars: ✭ 35 (-25.53%)
Mutual labels:  dcs-world, hotas
pilotclient
Cross-platform cross-simulator pilot client for virtual air traffic networks
Stars: ✭ 57 (+21.28%)
Mutual labels:  flight-simulation, prepar3d
MSFS2020-Real-Time-Weather
A work in progress to update a custom Microsoft Flight Simulator 2020 weather preset with the current conditions of a given airport.
Stars: ✭ 22 (-53.19%)
Mutual labels:  flight-simulator, flight-simulation
XB1ControllerBatteryIndicator
A tray application that shows a battery indicator for an Xbox-ish controller and gives a notification when the battery level drops to (almost) empty.
Stars: ✭ 536 (+1040.43%)
Mutual labels:  gamepad, xbox-controller
gamepad.js
A simple HTML5 Gamepad handler that provides keyboard-like events for Gamepad sticks and buttons.
Stars: ✭ 21 (-55.32%)
Mutual labels:  gamepad, xbox-controller
roomba flamethrower
Raspberry Pi Zero W powered Roomba Flamethrower controlled by an Xbox One Controller.
Stars: ✭ 14 (-70.21%)
Mutual labels:  xbox-controller, xbox-one-controller
ED-Warthog-Target-Script
Elite Dangerous Warthog Target Script (HCS Keys Binding)
Stars: ✭ 20 (-57.45%)
Mutual labels:  hotas
Joystick-Input-Examples
Code and comprehensive explanations of game controller I/O on PC
Stars: ✭ 62 (+31.91%)
Mutual labels:  xinput
ArduinoGamepad
A GamePad HID library for Arduino Pro Micro/Leonardo (ATMega32u4)
Stars: ✭ 66 (+40.43%)
Mutual labels:  gamepad
Xb2XInput
XB2X: User-mode Windows driver for Xbox OG controllers, supporting both XInput and DirectInput.
Stars: ✭ 70 (+48.94%)
Mutual labels:  xinput

ControllerBuddy Logo

ControllerBuddy

This is the source code repository of ControllerBuddy, regular users should refer to ControllerBuddy's homepage for getting started.

License Information:

GNU General Public License v3.0

Download and Installation:

Hint: You may want to use the ControllerBuddy-Install-Script which automates the steps below and more.

Windows x86-64:
  1. First ensure you have correctly installed vJoy on your system.
  2. Click here and download the latest build of ControllerBuddy for Windows as a ZIP archive.
  3. Extract the ControllerBuddy directory from the archive to any desired location on your hard-drive.
  4. Run ControllerBuddy.exe inside the extracted ControllerBuddy directory.
Linux x86-64:
  1. First ensure you have installed libsdl2 on your system:
    • Debian / Ubuntu: sudo apt-get install libsdl2-2.0
    • Red-Hat-based: sudo yum install SDL2
  2. Configure uinput:
    1. Create an uinput group: sudo groupadd -f uinput
    2. Add yourself to the group: sudo gpasswd -a "$USER" uinput
    3. As root, create a file /etc/udev/rules.d/99-input.rules with the following content:
      SUBSYSTEM=="misc", KERNEL=="uinput", MODE="0660", GROUP="uinput"
    4. As root, create a file /etc/modules-load.d/uinput.conf with the following content:
      uinput
  3. Reboot
  4. Click here and download the latest build of ControllerBuddy for Linux as a TGZ archive.
  5. Extract the ControllerBuddy directory from the archive to any desired location on your hard-drive.
  6. Run ControllerBuddy inside the extracted ControllerBuddy/bin directory.

Description:

ControllerBuddy is a highly advanced gamepad mapping software, which supports the creation of input profiles for complex target applications such as flight simulators.
In addition to the simplistic mapping of buttons and axes of a physical game-controller to keyboard and mouse input, ControllerBuddy also supports the feeding of input commands to a virtual joystick device (vJoy / uinput).
ControllerBuddy's goal is to enable the user to control target applications solely via a gamepad and not having to reach for a keyboard or mouse at any point in time.

Features:

  • Maps gamepad axes and buttons to highly customizable actions:
    • vJoy axis movements (absolute and relative)
    • vJoy button presses
    • Keyboard inputs
    • Mouse inputs
    • Cycles of actions
    • Mode switching
    • etc.
  • Powerful user interface:
    • Allows the creation of mapping profiles
    • Configuration of settings
    • Support for a light and dark UI theme
  • In-game overlay:
    • Displays currently active mode
    • Can display current position of virtual axes
    • On-Screen-Keyboard that can be controlled via gamepad
    • VR support (OpenVR-based)
    • Customizable position and colors
  • Two scenarios of operation:
    • Local
    • Server to client (experimental! use only in trusted networks!)
  • Supported gamepads:
    • Xbox 360 Controller
    • Xbox One Controller
    • Dual Shock 3
    • Dual Shock 4 (with special support for the touchpad, haptic feedback and lightbar)
    • Dual Sense (with special support for the touchpad, haptic feedback and lightbar)
    • etc. (to check if your controller is supported please refer to the SDL_GameControllerDB project)
  • Supported operating systems:
    • Windows / Linux (local / client / server)
    • macOS (only server - no binaries provided!)
  • Language support for:
    • English
    • German

Profiles:

Profiles are used to configure your gamepad for a certain target application.
A profile has the following general structure:

  • Profile (.json file)
    • Default Mode
      • X Axis
        • some Action
        • another Action
      • Y Axis
        • some Action
      • A Button
        • some Action
        • another Action
      • B Button
        • Mode Action (switches to "Another Mode" and back)
      • X Button
        • Mode Action (switches to "Yet another Mode" and back)
      • Y Button
        • Cycle Action (performs Action 1, when pressed again Action 2, then Action 3, then starts over)
          • Action 1
          • Action 2
          • Action 3
    • Another Mode
      • X Axis
        • some Action
      • A Button
        • some Action
    • Yet another Mode
      • X Axis
        • some Action

When switching from one Mode to another, all the axes and buttons that are not used by the other mode retain their function from the previous mode. This works over multiple levels of modes.
Mode switching can be configured to operate in two different ways:

  • Default: works like the SHIFT key on your keyboard
  • Toggle: works like the Caps Lock key

A set of well thought out profiles for the most popular flight simulators are available here.

Architecture:

Local mode:

            Local:

     Physical Controller
              |
              |
              v
       ControllerBuddy
       |             |
       |             |
       v             v
vJoy / uinput   Win32 / X11
      |                |
      |                |
      v                v
      Target Application

Server-Client mode:

             Server:                             Client:

       Physical Controller
                |
                |
                v
         ControllerBuddy  --------------->  ControllerBuddy
                                            |             |
                                            |             |
                                            v             v
                                     vJoy / uinput   Win32 / X11
                                           |                |
                                           |                |
                                           v                v
                                           Target Application

Example Screenshots:

Modes Tab

Assignments Tab

Component Editor - Button

Component Editor - Axis

Dark Mode

Visualization Tab

Overlay

VR Overlay

Command Line Parameters:

Parameter Arguments Description Available for scripting
-autostart local / client / server starts the specified mode of operation after launch yes
-export file destination exports a visualization of the current profile to the specified path yes
-help prints the help and exits no
-profile file source loads the specified profile after launch yes
-gamecontrollerdb file source adds the SDL controller mappings from the specified file yes
-quit quits the application yes
-save file destination save the current profile to the specified path yes
-skipMessageDialogs skips all message dialogs no
-tray launches the application in the system tray yes
-version prints the version information and exits no

If an instance of ControllerBuddy is already running, launching a second instance with the parameters denoted as "available for scripting" will trigger the corresponding action in the first instance and immediately shutdown the second instance.
This can be used to integrate ControllerBuddy into third party applications.
For more information check out this exemplary integration of ControllerBuddy into DCS World.

Attribution:

ControllerBuddy uses the following awesome software technologies and libraries:

Building:

If you want to build ControllerBuddy from its source code this section might be helpful to get you started.
ControllerBuddy uses the Gradle build system, the following Gradle tasks are supported:

Task Command
Generate version source file gradlew generateVersion
Run SpotBugs and Spotless gradlew check
Apply Spotless formatting gradlew spotlessApply
Run ControllerBuddy gradlew run
Install a jpackage image gradlew installDist
Create a ZIP-compressed jpackage image gradlew distZip
Create a TGZ-compressed jpackage image gradlew distTar
Generate Eclipse files gradlew eclipse
Delete Eclipse files gradlew cleanEclipse
Delete build and gen directories gradlew clean
Check for dependency updates gradlew dependencyUpdate
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].