Citra and vJoy (Switch JoyCon) Compatability

When using vJoy to connect dual Switch Joycons to PC (windows 10) Citra control configuration “CIRCLE PAD” is inverted.

I have successfully used vJoy to connect my controllers to my PC. They work flawlessly on other games (Steam titles such as Bioshock, Counter Strike, and Battlefield 5.) When I open up Citra (Nightly 1285) and go to Emulation -> Configure… -> Controls: and enter in the controls, it automatically works. I press facebuttons A, B, X, Y, I press the corresponding button on the switch JoyCon, it successfully pulls the button data so I can use it in-game. Here is the issue: When I go to setup the “Circle Pad” controls, click “Set Analog Stick”. And press horizontal first, vertical second, it inverts the Y axis on all Citra games (Specifically Pokemon Ultra Sun). I have tried all combinations but it doesn’t work. When i press left, it goes left. When i press right it goes right. When i press up… it goes down. When i press down… it goes up. BUT: Here is the kicker. When i set the directions individually. Left, axis -0. right axis 0. up axis 1. down axis -1. It works just fine. up is up, down is down. but now i have 8 directions and not a full circle pad/joystick.

Attempted resolutions: Clean install Citra. Clean ROM dump from owned 3ds and owned copy of games. Clean windows install. Clean vJoy. Clean install of everything. Also, attempted to manually invert game input by editing qt-config.ini, but its built into the code, and is just reference here since added as a joystick:
profiles\1\circle_pad\default=false
profiles\1\circle_pad=“axis_x:0,guid:0300000034120000adbe000000000000,axis_y:1,engine:sdl,port:1”
QUESTION: How can i resolve this? Or is this a code bug that i will have to wait for them to patch?

Thank you in advance for your insight!

Story: Why am I doing this? I wanted to play my 3ds on my tv… Katsukitti is out of buisness. tried streaming from CFW 3ds, to laggy. Dumped the game to my pc used citra to emulate, hated using keyboard and mouse. Only other controller is switch controller, so here I am haha!

System Information

  • Operating System: Windows 10 ver. 1803
  • CPU: Intel i7 6700HQ
  • GPU: Nvidia GTX 960m 2gb
  • Citra Version (found in title bar): 1285
  • Game: Pokemon Sun
  • Screenshot of Issue (include the full Citra window including titlebar):

Diagnostic Log
Upload your log file as an attachment by dragging & dropping.

In order to save a copy of the log, follow this guide:
citra_log.txt (254.0 KB)

System Information for Support

Client Version                                Nightly 1285 HEAD-c81a96b
OpenGL Vendor                                 NVIDIA Corporation
OpenGL Renderer                               GeForce GTX 960M/PCIe/SSE2
OpenGL Version                                3.3.0
Enable Hardware Renderer                      [x]
Enable Hardware Shader                        [x]
Hardware Shader, Accurate Multiplication      [ ]
Hardware Shader, Geometry Shaders             [x]
Enable Shader JIT                             [x]
System Region                                 -1

Here’s some issues I found with your log that might help.

  • Enabling Accurate Multiplication is recomended in certain games. If you are experiencing graphical glitches, try enabling this option.

Unfortunately citra can’t fix how the axis are mapped, you would likely need another 3rd party tool to reverse your axis. and yes, without using the ‘Set Analog Stick’ option you won’t get analog tilt angles. try using the BetterJoyForCemu method:

Someone made a small tutorial:

edit: this is a known issue when using vjoy, also there is the benefit of having motion sensors by using BetterJoyForCemu.