GithubHelp home page GithubHelp logo

yuk27 / betterjoyfordolphin Goto Github PK

View Code? Open in Web Editor NEW
59.0 2.0 3.0 809 KB

Allows the Nintendo Switch Pro Controller and Joycons to be used with the Dolphin Emulator

License: MIT License

C# 100.00%
joycon gyro-controls dolphin-emu nintendo-switch nintendo-switch-joycon driver gyroscope accelerometer udp windows

betterjoyfordolphin's Introduction

BetterJoyForDolphin v0.1

Allows the Nintendo Switch Pro Controller and Joycons (original and 3rd party) to be used with UDP version of Dolphin, the Nintendo Wii emulator.

This project is based on the amazing work done by Davidobot, creator of BetterJoyForCemu.

Donations

If you would like to support the development of BetterJoyForDolphin, consider donating to the BetterJoyForCemu project.

And if you feel generous you can also donate directly to BetterJoyForDolphin (and to me) at the following link.

Getting Started

Required software:

Prerequisites

Configure Dolphin UDP

After downloading and extracting UDP Dolphin, you need to manually add the port information to WiimoteNew.ini (By default located on path ..\Documents\Dolphin Emulator\Config\WiimoteNew.ini):

Extra code:

UDP Wiimote/Port = 4434 
UDP Wiimote/Enable = 1
  • (It's recommended to use port 4434, 4435, 4436, 4437 for controller 1, 2, 3, 4 respectively, but this can be modified to the user needs).

Example:

[Wiimote1] 
Source = 0
UDP Wiimote/Port = 4434
UDP Wiimote/Enable = 1
[Wiimote2]
Source = 0
UDP Wiimote/Enable = 1
UDP Wiimote/Port = 4435
[Wiimote3]
Source = 0
UDP Wiimote/Enable = 1
UDP Wiimote/Port = 4436
[Wiimote4]
Source = 0
UDP Wiimote/Enable = 1
UDP Wiimote/Port = 4437

You can also download a already configured version of WiimoteNew.ini.

For more information on Dolphin UDP please refer to the Dolphin Forum.

Installing

  1. Install drivers (if BetterJoyForCemu drivers have been installed before this step is not needed)

    1. Run ! Driver Install (Run as Admin).bat
  2. Run BetterJoyForDolphin.exe

    1. If running for the first time, things might glitch out - just close the program normally and restart your computer for the drivers to take effect.
  3. Connect your controllers (via bluetooth or USB).

  4. Once the controller has been detected by BetterJoyForDolphin, click on the Config option just under the controller icon. In there you can identify the Accelerometer sensibility, the direction of the axis and the type of controller (Needed for 3rd party Joycons, as this are by default set as Pro controllers).

  5. Start Dolphin UDP and ensure WiimoteNew has been correctly modified.

  6. Go to controllers option in Dolphin and configure it normally.

Compatibilty with Cemuhook

BetterJoyForDolphin mantains legacy functionalities from BetterJoyForCemu, so you can test the controller accelerometer and gyro by using padtest.

For more information on cemuhook, please refer to the follwing link.

App Settings

BetterJoyForDolphin settings allow to set the port being used for each controller on Dolphin UDP , just click in the panel, set the expected port, click away from the panel and click on "Apply".

Example

For more information on the legacy settings from BetterJoyForCemu please refer to App Settings

Problems

Make sure you installed the drivers!!

3rd party Joycons are recognise as Pro Controllers

As 3rd party controllers can have different internal IDs of what is expected on a 1st party controller, by default 3rd party controllers are set as Pro controllers, you can manually identify the type of controller you are using by going to "Config" option just under the controller icon, a Panel will appear where you can identifying the controller by it's type and click apply, this will store the controller information on the serials.dat file.

Motion Controls work erratic

Try playing with the sensibility option on the Config panel, as depending on the controller sometimes sensibility can be lower or higher than expected from a Wiimote (as we are emulating one).

3rd party right controller works less accurate than left one

Some 3rd party right controllers information can be different from what is expected, you can try solving the issue by inverting the Y and Z axis on the controller configuration panel and tweaking the sensibility as needed.

Example

For more problems solutions please refer to Problems.

Connecting the Controller

Bluetooth Mode

Hold down the small button on the top of the controller for 5 seconds - this puts the controller into broadcasting mode.

Search for it in your bluetooth settings and pair normally.

To disconnect the controller - press down the button once. To reconnect - press any button on your controller.

USB Mode

Plug the controller into your computer.

WIP and expected future additions: (Order by priority, I accept requests ;) )

  • Bug and accuracy fixes.
  • Handling of Wii IR functionalities (maybe using the Joycon gyro).
  • Adding Motion controls to Nunchucks using the right Joycon accelerometer.
  • Win the lottery to have the time and money to work on this kind of projects.

Videos

Acknowledgments

A massive THANK YOU out to Davidobot for creating BetterJoyForCemu, please keep the amazing work!

A massive THANK YOU out to kevlahnota for creating Dolphin-Ishiiruka UDPWii, and keeping the option of creating over his work.

betterjoyfordolphin's People

Contributors

yuk27 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

ew262 mattvgm jakes9

betterjoyfordolphin's Issues

Still useful?

Is this project still have any benefit over BetterJoy now that it has been updated to work with dolphin?

No exe file

There is no exe file in the download zip or anywhere I can see, where do I get this?

a button to reset gyro controls back to the start position

seeing as the last changes were 2 months ago
im sorry if i disturbed you
but could something like the gyro combo code be added to reset the gyro back to its starting position?
even if it was just a setting for the gyro combo code to reset it every time its triggered

Rumble stopped working on 3rd party joycons.

My 3rd party joycons' sticks didn't work properly on BetterJoyForCemu, the problem could've been solved if [add controllers] did something, so i moved to this program. Everything went great until the rumble just kind of stopped working in BetterJoyForDolphin. It's not my Joycons' fault, the rumble still works on BetterJoyForCemu.

I hope someone can help me or a future release can solve this problem. Thank you.

Third Party Wired Switch Controller Not Working

I have a third party USB-only pro controller made by PowerA, and BetterJoy does not connect with it at all. I can see it in the "Add Controllers" section but it will not actually add it.

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.