Coder Social home page Coder Social logo

xjoy's Introduction

XJoy

XJoy allows you to use a pair of Nintendo Joy-Cons as a virtual Xbox 360 controller on Windows. XJoy is made possible by ViGEm and hidapi.

Support this project

XJoy is a free product that I work on in my free time, so any contributions are greatly appreciated.

Installation

  1. Install the ViGEm Bus Driver
  2. Install the Visual C++ Redistributable for Visual Studio 2017
  3. Download the latest zip from the releases page and extract it somewhere permanent like your Documents folder
  4. That's it!

Usage

  1. Pair each of your Joy-Cons with Windows (hold down the button on the side to put into pairing mode, then go to add bluetooth device in Windows)
  2. Ensure that both Joy-Cons show as "Connected" in your bluetooth devices page
  3. Run XJoy.exe
  4. Start playing games with your Joy-Cons. A virtual xbox controller should show up as soon as XJoy.exe starts running (you will hear the USB device inserted sound).
  5. To confirm that it is working, try pressing some buttons on your Joy-Cons. You should see the names of the buttons currently being pressed printed in the terminal.
  6. To exit, press [ENTER] in the terminal window. You can also simply close the window however this may not disconnect from the Joy-Cons and the virtual controller properly.

When you launch XJoy.exe, you should get output similar to this:

XJoy v0.1.0

initializing emulated Xbox 360 controller...
 => connected successfully
 => added target Xbox 360 Controller

initializing threads...
 => created report mutex
 => left Joy-Con thread started
 => found left Joy-Con
 => successfully connected to left Joy-Con
 => right Joy-Con thread started
 => found right Joy-Con
 => successfully connected to right Joy-Con

Customization

Right now all buttons are hard-coded to their "default" xbox equivalents. If you wish to customize these mappings, feel free to modify the process_button method in XJoy.cpp. I plan to add support for a configuration file and maybe a GUI in later versions. The default mappings are shown below:

Joy-Con Button Xbox Button
A A
B B
X X
Y Y
Left Trigger Left Trigger
Right Trigger Right Trigger
Left Shoulder Left Shoulder
Right Shoulder Right Shoulder
D-PAD D-PAD
Left 8-way Analog Left Analog
Right 8-way Analog Right Analog
Left Stick Left Thumb
Right Stick Right Thumb
Home Start
Capture Back
Plus Start
Minus Back

Building

If you wish to build XJoy yourself, simply install the ViGEm Bus Driver as outlined in the installation steps, open the XJoy.sln file in Visual Studio 2017, and build. Everything should work out of the box but if it does not feel free to submit an issue.

xjoy's People

Contributors

13thsymphony avatar andrekorol avatar harrypeach avatar sam0x17 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.