Git Product home page Git Product logo

betterjoy's Introduction

BetterJoy v7.0

Allows the Nintendo Switch Pro Controller, Joycons, and Switch SNES controller to be used with Cemu using Cemuhook, Citra, Dolphin, Yuzu, and system-wide with generic XInput support.

It also allows using the gyro to control your mouse and remap the special buttons (SL, SR, Capture) to key bindings of your choice.

If anyone would like to donate (for whatever reason), you can do so here.

Personal note

Thank you for using my software and all the constructive feedback I've been getting about it. I started writing this project a while back and have since then learnt a lot more about programming and software development in general. I don't have too much time to work on this project, but I will try to fix bugs when and if they arise. Thank you for your patience in that regard too!

It's been quite a wild ride, with nearly 590k (!!) official download on GitHub and probably many more through the nightlies. I think this project was responsible for both software jobs I landed so far, so I am quite proud of it.

Screenshot

Example

Downloads

Go to the Releases tab!

How to use

  1. Install drivers
    1. Read the READMEs (they're there for a reason!)
    2. Run Drivers/ViGEmBus_Setup_1.16.116.exe
    3. Restart your computer
  2. Run BetterJoyForCemu.exe
    1. Run as Administrator if your keyboard/mouse button mappings don't work
  3. Connect your controllers.
  4. Start Cemu and ensure CemuHook has the controller selected.
    1. If using Joycons, CemuHook will detect two controllers - each will give all buttons, but choosing one over the other just chooses preference for which hand to use for gyro controls.
  5. Go into Input Settings, choose XInput as a source and assign buttons normally.
    1. If you don't want to do this for some reason, just have one input profile set up with Wii U Gamepad as the controller and enable "Also use for buttons/axes" under GamePad motion source. This is no longer required as of version 3
    2. Turn rumble up to 70-80% if you want rumble.
  • As of version 3, you can use the pro controller and Joycons as normal xbox controllers on your PC - try it with Steam!

More Info

Check out the wiki! There, you'll find all sorts of goodness such as the changelog, description of app settings, the FAQ and Problems page, and info on how to make BetterJoy work with Steam better.

Connecting and Disconnecting the Controller

Bluetooth Mode

  • Hold down the small button (sync) 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 - hold the home button (or capture button) down for 2 seconds (or press the sync button). To reconnect - press any button on your controller.

USB Mode

  • Plug the controller into your computer.

Disconnecting [Windows 10]

  1. Go into "Bluetooth and other devices settings"
  2. Under the first category "Mouse, keyboard, & pen", there should be the pro controller.
  3. Click on it and a "Remove" button will be revealed.
  4. Press the "Remove" button

Building

Visual Studio (IDE)

  1. If you didn't already, install Visual Studio Community 2019 via the official guide. When asked about the workloads, select .NET Desktop Development.
  2. Get the code project via Git or by using the Download ZIP button.
  3. Open Visual Studio Community and open the solution file (BetterJoy.sln).
  4. Open the NuGet manager via Tools > NuGet Package Manager > Package Manager Settings.
  5. You should have a warning mentioning restoring your packages. Click on the Restore button.
  6. You can now run and build BetterJoy.

Visual Studio Build Tools (CLI)

  1. Download Visual Studio Build Tools via the official link.
  2. Install NuGet by following the official guide. You should follow the section for nuget.exe. Verify that you can run nuget from your favourite terminal.
  3. Get the code project via Git or by using the Download ZIP button.
  4. Open a terminal (cmd, PowerShell, ...) and enter the folder with the source code.
  5. Restore the NuGet dependencies by running: nuget restore
  6. Now build the app with MSBuild:
    msbuild .\BetterJoy.sln -p:Configuration=CONFIGURATION -p:Platform=PLATFORM -t:Rebuild
    
    The available values for CONFIGURATION are Release and Debug. The available values for PLATFORM are x86 and x64 (you want the latter 99.99% of the time).
  7. You have now built the app. See the next section for locating the binaries.

Binaries location

The built binaries are located under

BetterJoyForCemu\bin\PLATFORM\CONFIGURATION

where PLATFORM and CONFIGURATION are the one provided at build time.

Acknowledgements

A massive thanks goes out to rajkosto for putting up with 17 emails and replying very quickly to my silly queries. The UDP server is also mostly taken from his ScpToolkit repo.

Also I am very grateful to mfosse for pointing me in the right direction and to Looking-Glass without whom I would not be able to figure anything out. (being honest here - the joycon code is his)

Many thanks to nefarius for his ViGEm project! Apologies and appreciation go out to epigramx, creator of WiimoteHook, for giving me the driver idea and for letting me keep using his installation batch script even though I took it without permission. Thanks go out to MTCKC for inspiration and batch files.

A last thanks goes out to dekuNukem for his documentation, especially on the SPI calibration data and the IMU sensor notes!

Massive thank you to all code contributors!

Icons (modified): "Switch Pro Controller", " Switch Detachable Controller Left", "Switch Detachable Controller Right" icons by Chad Remsing from the Noun Project. Super Nintendo Controller icon by Mark Davis from the the Noun Project; icon modified by Amy Alexander.

betterjoy's People

Contributors

agustinmorantes avatar andreabak avatar asleepycat avatar brakhane avatar burndil avatar ceshion avatar cobalt2727 avatar davidobot avatar empathicqubit avatar fabiosantoscode avatar flaminsarge avatar german77 avatar idan-weizman avatar ionblade2k avatar itachisan avatar kcghost avatar kurtyilmaz avatar marco-calautti avatar maxill1 avatar mercury233 avatar nefarius avatar odaem avatar ohblihv avatar psyvern avatar quark-zju avatar robertborg avatar shukenmg avatar spacechase0 avatar starrytony avatar xqdoo00o 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  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  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

betterjoy's Issues

Problem Using Normally After Uninstall

I have had an issue in which when I uninstall the program the Pro Controller can't register input anymore.
It does not come up when I look at gamepads. The only way to use it again is if I run the program. I am running windows 10.

pro controller is not recognized by cemu

( first I wanted to appologie if I make mistakes, i'm not very good in English)

My issue is : when I start cemu and "better joy for cemu" I can't bind any key in my input settings,
I thought that my pro controller was not recognized by my computer but I've checked and it seems that everything is fine.
I've even deleted and downloaded cemu again, but nothting has changed.
I hope you will be able to help me.

can't connect more than 2 joycons :(

I wanted to play some games with my cousin, who also has a switch, when I booted up the program, it showed that 4 joycons were connected and even had 2 virtual xbox controllers set up, but when I tried to map buttons on programs like pcsx2 and cemu it wouldn't allow me to map any buttons.

Strange Windows inputs and accessibility malfunction while driver is talking to Pro Controller

Hi,
This issue happens while using Pro Controller via USB connection.
It is exactly same as MTCKC/ProconXInput#2 (it also occurred on my computer), then the developer of ProconXInput fixed it in a newer version. (However ProconXInput itself lacks some key features and has other problems, so I want to use BetterJoyForCemu.)

https://www.reddit.com/r/cemu/comments/84pmt8/switch_pro_controller_and_joycons_now_support/dvrjh07/
This user from Reddit had this problem, too.

BTW, when using BetterJoyForCemu, there are 2 controllers in my "Game Controller" settings.
The one called "Controller (XBOX 360 For Windows)" works as expected, but another one, "Wireless Gamepad" shows totally random behaviors. This makes Steam's Big Picture Mode and some games can't work.
Hopefully this can be fixed. Thank you!

Gyroscope slip & slow

My gyroscope are slipping, botw, on botw, that were the same on botw Switch but only hip and 1sec max and it stop After that (but that slower than on the Switch).
Moreover the gyroscope sensitivity is way too low too being usable.
Siret if my words are rude but learn french is way easer than english <( -°- < )_

Calibration issues

hi, I'm having some trouble with the app, my pro controller isn't properly calibrated, so or doesn't recognise well the left stick, it doesn't go full forward, so, for example I can't run in splatoon, I have been able to calibrate it via Windows, so in other programs it works just fine, but this app is overwriting that calibration. Please tell me how could I fix it. Thanks for the hard work!

Can we get to emulate only gyro?

So I wanted to know if it's posible to make BetterJoyForCemu to only emulate the gyro, disabling the xinput emulation, just sending the motion data to the server

The app crashes if two joycons are connected and XInput disabled

So I usually use a pro controller with steam, so I disabled XInput and HIDG, but then I got an error when connecting two joycons, that automatically changed to try to be only one gamepad, so i thought maybe the issue can be fixed if pro controllers and joycons have different configurations for XI and HIDG, and when the XI is disabled for the joycons make it impossible to try to join them, I'm sorry to be a bother, I love your app and your dedication even if you're busy, thanks a lot for developing this, btw I love the new led effect when they get connected

edit:
I was having some issues with HIDG it always stayed on for some reason, I had to enter http://localhost:26762/ and manually remove the devices from the list, it was very weird even if I uninstalled the drivers and services, the controllers were still "protected", I think I uninstalled the drivers and services when BJFC was still running

Steam Controller Issue(Game Specific)

First of all, thanks for adding steam controller(xinput) support. So I've been using this program for a xinput controller for a while now. However, I encountered an issue on a specific game(Valkyria Chronicles) wherein it detects both the wireless gamepad(direct input) and xbox controller(xinput) at the same time resulting in erroneous inputs. Is it possible to add a feature that hides the pro controller or mask/hide the direct input? Thank you very much!

'Nefarius.ViGEm.Client.Exceptions.VigemBusNotFoundException' was thrown on startup

Upgraded tonight. When it starts it throws this error and ends.

Unhandled Exception: Nefarius.ViGEm.Client.Exceptions.VigemBusNotFoundException: Exception of type 'Nefarius.ViGEm.Client.Exceptions.VigemBusNotFoundException' was thrown.
   at Nefarius.ViGEm.Client.ViGEmClient..ctor() in C:\Users\Grigor\Downloads\ViGEm-master\ViGEm-master\NET\ViGEmClient\ViGEmClient.cs:line 25
   at BetterJoyForCemu.Program.Main(String[] args) in C:\Users\Grigor\source\repos\BetterJoyForCemu\BetterJoyForCemu\Program.cs:line 209

Cheers

Driver Install admin detection seems broken (NOPE)

No matter what i do I seem to be unable to uninstall the software, the installer just keeps on telling me that I'm not running it as an admin. I've tried basically everything i can find thus far but it doesn't seem to be working.

Thanks for any help anyone might provide.

nope I'm a big dumdum

Seriously though I must I've done something hilariously wrong cause I've managed to fix it by re downloading the software, you now, computer solution No2 right after "turn it off and on again"...

I'm an actual moron...

Unhandled exception

I installed the drivers and connected the controller. Also restarted but i keep getting this message.

Pro controller connected.

Unhandled Exception: System.FormatException: Input string was not in a correct f
ormat.
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffe
r& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo in
fo)
   at System.Byte.Parse(String s, NumberStyles style, NumberFormatInfo info)
   at BetterJoyForCemu.JoyconManager.Awake() in C:\Users\Grigor\source\repos\Bet
terJoyForCemu\BetterJoyForCemu\Program.cs:line 88
   at BetterJoyForCemu.Program.Main(String[] args) in C:\Users\Grigor\source\rep
os\BetterJoyForCemu\BetterJoyForCemu\Program.cs:line 222

JoyCons latency/unpair issue

While playing BOTW my Joy Cons were glitching - the control sticks stayed at the same place for more than a second after releasing them and were unusable.

Left Joycon not working

Everything seems to be working just fine however, I can't map the L, LZ, or - buttons or the d-pad in the input settings. Weirdly enough, the left joystick has no problem and I'm able to map it with no issue.

NEw version V4

Hey thanks a lot for create this app... Look the rumble doesn't working in this version.

System wide Rumble

Helllo there,
great work on this one. This is definitely my favorite Pro Controller and Joycon drivers, worked flawlessly right after download. However, there is a feature I would like to request. I'm using the controller on Dolphin 5.0, however the rumble motors are not working with it. Could it be possible for you to implement a system wide "standard" rumble feature?
Thank you so much anyway for this piece of software

Left Joy-Con left/right D-Pad buttons are flipped

I have just set up The Legend of Zelda: Breath of the Wild for Cemu use (as I own the game on my Nintendo Wii U, but not my Nintendo Switch, and don't have my Wii U at home right now), and so I want to try using a pair of Nintendo Switch Joy-Cons when playing it (for the sake of gyroscope stuff), so I downloaded and ran version 2b of this tool/program. (Edit: And I'm using Cemu 1.11.5d and CemuHook 0.5.6.3.)

But just a few minutes into the game (when going to change the camera sensitivity to Very Fast), I noticed that when I press the left D-Pad button on the left Joy-Con, the camera speed option goes to the right instead of the left, and vice versa for the right D-Pad button. After getting some inventory items, I can confirm that the inventory cursor/selector also moves right instead of left, and vice versa, when using the D-Pad.

At first glance, all other buttons (including the up and down D-Pad buttons) seem to be mapped correctly. I have not done anything to the control bindings within Cemu (the controls are set to use a keyboard, not either of the Joy-Cons, and the control bindings are all left blank).

~

TL;DR: On the left Joy-Con, the left and right D-Pad buttons seem to have been mapped to each other's corresponding D-Pad direction of the Cemu Gamepad.

.Net Framework Error on startup

Hi I would like to report an error I get when I try to open v4 of the software.
I did a clean install of the driver on a new computer, it worked the first time. But after I closed and re-opened I get the following error:
https://i.imgur.com/bRsVhrs.png

I am using the latest version of Windows 10, I am guessing that this has something to do with the April update. Note that the previous version (v3b) works just fine without reinstalling the driver.

These are the details:

just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.InvalidOperationException: Service HidCerberus Service was not found on computer '.'. ---> System.ComponentModel.Win32Exception: The specified service does not exist as an installed service
   --- End of inner exception stack trace ---
   at System.ServiceProcess.ServiceController.GenerateNames()
   at System.ServiceProcess.ServiceController.get_ServiceName()
   at System.ServiceProcess.ServiceController.GenerateStatus()
   at System.ServiceProcess.ServiceController.get_Status()
   at BetterJoyForCemu.Program.Start()
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
BetterJoyForCemu
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/savio/Downloads/BetterJoyForCemu_v4_x64/BetterJoyForCemu.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Net.Http
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.ServiceProcess
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.ServiceProcess/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.ServiceProcess.dll
----------------------------------------
Nefarius.ViGEmClient
    Assembly Version: 1.14.3.0
    Win32 Version: 1.14.3.0
    CodeBase: file:///C:/Users/savio/Downloads/BetterJoyForCemu_v4_x64/Nefarius.ViGEmClient.DLL
----------------------------------------
System.Numerics
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Keyboard to controller mapping?

I want to use left joycon + mouse so left joycon should be fine but I want to map the extra buttons on my mouse to keyboard and use this program to translate that keyboard input to controller/xinput. Is this possible?

Can't get Cemu to see motion controls for Switch Pro Controller

Trying to get this setup but under GamePad Motion Source, it always says DSU: DISCONNECTED

Running 1.11.3, Betterjoy v4 and cemuhook 0.5.6.4

I ran pad test and it was able to see the motion controller working.

Cemu Input Settings are set to a profile, and I can configure the buttons and rumble there with input/feedback from controller.

In BetterJoy the server is set at 127.0.0.1:26760

And cemuhook.ini is

[Input]
motionSourceIsBtnSource = true
serverIP = 127.0.0.1
serverPort = 26760

What am I missing?

Too much lag when using JoyCons

When I start Cemu I see that there is a lot of lag using the JoyCons,

Before I discovered this tool, I was using vJoy and the JoyCon driver and there was no lag.
That method dosn't support gyro input and I decided to use instead of the vJoy method.

What can I do? I followed al the instructions ins the Problems section and nothing happended. Please help.

A Problem with server communications. Or... something

Every time I have launched the application, it has always recognized my Joycons and synced them as one controller. However, They do not register as controllers on Cemu and I am pretty sure it pertains to the fact that the application is not able to "start the server", for whatever reason. If you guys have any possible solutions please contact me, it'll be much appreciated.

cemuhook application error-input lag

when i open better joy for cemu, its that be sure that there is no other cemuhook application running
but there is no cemuhook application running.
there is also input lag as well,i use 2 joy -conz
betterjoyforcemu 02 09 2018 00_22_57

Pro Controller Left Stick is offset a bit to the left and down

I don't know if this applies to the right stick too, but using Smash for Wii U's control configuration screen, I was able to record a demonstration.
combop
Let me explain what I'm doing here: First I unpause and take my hands away from the controller, and mario starts moving slowly left. I then slowly push the left stick up and to the right a bit to make him stop. I then pause and enable A+B side smash attacks, so I don't have to press the stick at all. A side smash attack can be angled up, straight, or down, depending on the angle the stick is at, and in this case, it is going down, without even touching the sticks.

I should note that I've only tested this on USB input mode, since I have no way of testing bluetooth.

I hope this is enough information, since I actually cannot tell how offset the stick is.

Connect multiple controllers simultaneously, windows 10 lag

One improvement I wish to see in a possible future version is better management of multiple controllers, when I try to connect two pro controllers or the pro controller with a pair of joycon for multiplayer games, I often get a noticeable lag from the controllers, which makes games unplayable.
I think this might be a problem with the multithreading management, but I'm not familiar enough with the code and the project to look more closely into it.

My sistem is Win 10 with latest update, I have no problems at all with a single controller. Thoughts on this issue?

Multiple projects controllers possible?

Hello, I really wanted to thank you for this feature as it makes cemu that much better.

Sorry if this not the place for this question I'm quite new to github.

I was wondering if it's possible to use multiple switch pro controllers with this tool, even if only one get the motion controls, as I have the switch pro controller and two Xbox one controllers and I want to get the forth controller for cemu retroarch etc... If another switch pro controller would work as good with this tool, so that way I could use both controllers with the switch and the pc, if not I will possibly buy either another Xbox one controllers or and 8bitdo sfc30 pro which should work with everything as well.

I'm using an Asus 4.2 BT dongle through virtual usb here and it is working flawlessly.

Thank you so much for this.

Nintendo Switch Controller ZL & ZR Buttons Incorrectly Registered as Z axis.

Nintendo Switch Controller ZL & ZR Buttons incorrectly Registered as Z axis buttons.
The Z Axis represents movement up and down in terms of a Wii remote controller.
ZL and ZR on the Switch Pro controller do not relate to directions as they are just buttons as opposed to joysticks/directional pads.

Due to this, I have been unable to use them in programs such as Citra as they will exhibit weird qualities. (Constantly remained pressed) It'd be nice to be able to use ZL and ZR instead of L and R for games as they are a much larger button and are easier to hit.

z axis button registered

Side note: Thanks for the hard work creating this and give me a holler if you want some help testing things. I'm a Software Engineer myself.

Pro Controller doesn't work after starting the program

Hello,
as mentioned already in the title, unfortunatly the program isn't working for me.
The Pro Controller works fine when I connect it to my PC via bluetooth, but after opening BetterJoyForCemu, the controller doesn't respond anymore.
I've already set up an input profile in cemu.
After opening BetterJoyForCemu, the following text says:
Pro controller connected.
Using factory stick calibration data.
Using factory stick calibration data.
Starting poll thread.
Starting server.
Press enter to quit.
Now the first LED lights up.
At this point, the Pro Controller doesn't respond in the Windows USB game controller setting and in cemu.
I've followed every step in the "How to use" section exactly, but the setup always fails at this point.
What can I do? Please help me, I don't want to use my phone again to use motion controls :D

"Swap buttons: true" in config file seems to have no effect?

Has this been tested to actually work in the latest build? Although the config file is set to true, the joycon button labeled "A" is still recognized as a "B" X360 button.

Let me know if there's anything I can provide to help debug this...

Paired controller unable to reconnect

I disconnect the controller by pressing the sync button once. When trying to reconnect by pressing other buttons, BetterJoyForCemu does not recognize the already paired controller.

Thanks ! But..

So thanks for this new version, rumble work perfectly but the buttons, i don't understand...
Home and share buttons still doesn't work and are assignated to "number?" i can assign them to keyboard, but i want assign them to the show screen and blow mic.

Is this a bug, or me i not correctly understood what to do?
(PS: The home button by default activate the XBOX DVR i don't know why?)

[Suggestions] Deadzone, sensitivity slider and smoothing for motion controllers

Hi and thanks for this great piece of software. Using a Switch Pro controller for Breath of The wild and having gyros at the same time completes my emulation experience as I am not great with aiming with a joystick.

I have a few requests for future updates. Some are probably already on the list, I haven't really checked much.

  1. Add deadzone for gyro movement. I am noticing some very small drifting to the sides when I aim my bow. This could be avoided if we had some sort of minimum movement needed setting that ignored all the small movements that the controller keeps sending even when it is placed on a table.
  2. Add a sensitivity slider. As it is right now, I feel the movements in-game are smaller than I expect when I move the controller around. It could be smart to implement separate sliders for each axis.
  3. Smoothing option. Not sure how to explain this, and it may cause too much delay, but a tiny amount of motion smoothness couldn't hurt. This stabilizes, to some degree, shaky hands. One possibility that I can think of is to average the values within a certain time-frame to make the motions less shaky on screen. But then again it will add delay to the motions.
  4. Port option should be in GUI. I don't know why, but I had to troubleshoot a lot before I finally made gyros work. And one of the fixes was to switch ports back and forth on Cemuhook and Betterjoy.

Buttons

Hello,

Thanks a lot for this application!
But before i used my pro controller and i could use the home button and the share button (the share button: mic and home button: showscreen), but yet with this application i can't asign them, the controller work only if i activate "also use for button/axis", so it is possible to asign them to those buttons because here they are useless.

Application crashes after enabling second monitor

Steps to reproduce:

Connect Pro Controller to PC
Open Dolphin
Enable "extended" dual-screen setup
-application will now look as though it's functioning but not receive any inputs
Attempt to exit application
Application hangs
Any attempt to start it back up will crash it with an unhandled exception

(un)install bats could be improved. Here's how.

There is an extra slash in the change directory command. This should be removed.

cd /d "%~dp0\Drivers"

Need to remove the \. "%~dp0" includes the backslash automatically. You can test with echo %~dp0\Drivers & pause and echo %~dp0Drivers & pause and you will see the difference.

Next, as I mentioned before, you can have your bat ask for administrator permissions, even if a user does not run as administrator. Here is the code for this.

@echo off
setLocal EnableExtensions EnableDelayedExpansion
set "ScriptPath=%~dp0"
set "ScriptPath=%ScriptPath:~0,-1%"
set "ScriptName=%~n0.bat"
pushd "%ScriptPath%"

:: CHECK ADMIN RIGHTS
fltmc >nul 2>&1
if "%errorlevel%" NEQ "0" (goto:UACPrompt) else (goto:GotAdmin)

:UACPrompt
echo:
echo   Requesting Administrative Privileges...
echo   Press YES in UAC Prompt to Continue
echo:
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\GetAdmin.vbs"
echo args = "ELEV " >> "%temp%\GetAdmin.vbs"
echo For Each strArg in WScript.Arguments >> "%temp%\GetAdmin.vbs"
echo args = args ^& strArg ^& " "  >> "%temp%\GetAdmin.vbs"
echo Next >> "%temp%\GetAdmin.vbs"
echo UAC.ShellExecute "%ScriptName%", args, "%ScriptPath%", "runas", 1 >> "%temp%\GetAdmin.vbs"
cmd /u /c type "%temp%\GetAdmin.vbs">"%temp%\GetAdminUnicode.vbs"
cscript //nologo "%temp%\GetAdminUnicode.vbs"
del /f /q "%temp%\GetAdmin.vbs" >nul 2>&1
del /f /q "%temp%\GetAdminUnicode.vbs" >nul 2>&1
exit /B

:GotAdmin
if '%1'=='ELEV' shift /1
if exist "%temp%\GetAdmin.vbs" del /f /q "%temp%\GetAdmin.vbs"
if exist "%temp%\GetAdminUnicode.vbs" del /f /q "%temp%\GetAdminUnicode.vbs"

Add this code to the top of your bat file, under the @echo off and you will be good to go.

Gyro problem issue on my Switch Pro

Hi, thank you for your great work, I'm a Chinese user, forgive my poor English. There is a little problem on my Cemu.
Yesterday I download Cemu1.11.5 and cemuhook 0.5.6.3, and at first time it worked well, but today the gyro
doesn't seem work. All settings are correct,the "Also use for buttons/axes" has been checked.
I deleted the bluetooth device and reconnected, only gyro still doesn't work, other bottons work well.
I hope I made it clear.

wrong recognition for pro controller as Left Joy-con only.

Hello.

for a long time, I really wished to play cemu with gyro. thus, I bought Pro Controller at online shop. but, sadly, it is not original but similar. (I found it later. product link is below)

https://www.aliexpress.com/item/Wireless-Gamepad-Game-joystick-Controller-For-Nintend-Switch-Pro-NS-Host-Bluetooth-controller-Support-Somatosensory-Vibration/32869624541.html?spm=2114.search0104.3.9.104057662I3sXJ&ws_ab_test=searchweb0_0,searchweb201602_3_10152_10151_10065_10344_10068_10342_10343_10340_10341_10696_10084_10083_10618_10307_10712_10713_10869_10868_10059_100031_10103_10624_10623_10622_10621_10620,searchweb201603_16,ppcSwitch_2&algo_expid=298a4121-44e4-44e8-8376-f59e9dda1e95-1&algo_pvid=298a4121-44e4-44e8-8376-f59e9dda1e95&transAbTest=ae803_1&priceBeautifyAB=0

however, people says it is very compatible it's original one so I hoped that it works fine.

and finally, I received the item today and I tried to connect Pro controller to my labtop via bluetooth. Pairing and connecting was okay but, some errors are shown on betterjoyforcemu_v4 described below.

Left Joy-Con connected.
Only one joycon found. Please connect both and then restart the program.
Using factory stick calibration data.
Starting poll thread.
Could not start server. Make sure that only one instance of the program is running at a time and no other CemuHook applications are running.
All systems go

issue 1.
My one is Pro-controller but betterjoyforcemu_v4 says only Left Joy-Con is connected.

issue 2.
at the first time, It was able to start server. but after several times installing and un-installing many versions of betterjoyforcemu, It was not able to start server.

can I have any solution for this?

thanks for listening to my problem.

Slight drift to the right with Pro Controller

My pro controllers seem to have a very slight drift to the right, I've tested it with two different controllers, this doesn't seem to affect my joy cons. Here's a picture showing the issue, the first controller is a pro, the second two are joy cons. I didn't touch any of the controllers once it started, the pro drifted to that position by itself. Also, excellent work on the program, I had been waiting for something like this but didn't think anyone would actually make it!
gyro

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.