yuzu icon indicating copy to clipboard operation
yuzu copied to clipboard

HidGuardian makes Yuzu crash

Open Matthysse opened this issue 2 years ago • 7 comments

Hello!

I have a specific problem with BetterJoy and Yuzu (it's the only emulator having a problem with BetterJoy). When enabling HidGuardian (a feature I want to be on in BetterJoy, because I use Parsec and if I open Parsec and Yuzu at the same time, I have input duplication problems) in BetterJoy, and using Yuzu for a while, Yuzu just crashes randomly, at the same time as BetterJoy does, which is really weird. I think that it is Yuzu that is causing the problem, as I don't have this problem with other emulators. If I disable HidGuardian, the problem disappears.

I attach the log file for the latest crash I had. Sorry for posting it as a file, but it is too long for pastebin. yuzu_log.txt

Matthysse avatar Aug 22 '22 09:08 Matthysse

HidGuardian and yuzu aren't friends both try to take ownership of the controller resulting in wrong controller config that may cause the driver to crash.

I don't really see why you need betterjoy while running yuzu. If you are the host you don't need betterjoy because the controller is connected directly to the pc. If you are a client you don't need yuzu open because the game is on the host PC.

german77 avatar Aug 22 '22 22:08 german77

I have to use BetterJoy for other emulators, such as Dolphin for example. That's why I use it, and after installing it, Yuzu doesn't recognize the pro controller anymore, even without BetterJoy open. So... I don't really want to uninstall BetterJoy and its drivers when wanting to play Yuzu, that's the problem.

Matthysse avatar Aug 23 '22 17:08 Matthysse

I'm new to this yuzu... I started a few days ago. I use yuzu-cmd.exe, I don't like that gui in any case, I prefer the text mode.

add to file: %appdata%\yuzu\config\sdl2-config.ini

[ControlsP0] button_a=engine:sdl,guid:030000007e0500000920000000006800,button:0 button_b=engine:sdl,guid:030000007e0500000920000000006800,button:1 button_x=engine:sdl,guid:030000007e0500000920000000006800,button:2 button_y=engine:sdl,guid:030000007e0500000920000000006800,button:3 button_minus=engine:sdl,guid:030000007e0500000920000000006800,button:4 button_home=engine:sdl,guid:030000007e0500000920000000006800,button:5 button_plus=engine:sdl,guid:030000007e0500000920000000006800,button:6 button_lstick=engine:sdl,guid:030000007e0500000920000000006800,button:7 button_rstick=engine:sdl,guid:030000007e0500000920000000006800,button:8 button_l=engine:sdl,guid:030000007e0500000920000000006800,button:9 button_r=engine:sdl,guid:030000007e0500000920000000006800,button:10 button_dup=engine:sdl,guid:030000007e0500000920000000006800,button:11 button_ddown=engine:sdl,guid:030000007e0500000920000000006800,button:12 button_dleft=engine:sdl,guid:030000007e0500000920000000006800,button:13 button_dright=engine:sdl,guid:030000007e0500000920000000006800,button:14 button_screenshot=engine:sdl,guid:030000007e0500000920000000006800,button:15 button_zl=engine:sdl,guid:030000007e0500000920000000006800,axis:4,threshold:0.5,invert:+ button_zr=engine:sdl,guid:030000007e0500000920000000006800,axis:5,threshold:0.5,invert:+ lstick=axis_x:0,engine:sdl,invert_x:+,guid:030000007e0500000920000000006800,axis_y:1,offset_x:-0.000000,offset_y:0.000000,invert_y:+ rstick=axis_x:2,engine:sdl,invert_x:+,guid:030000007e0500000920000000006800,axis_y:3,offset_x:-0.000000,offset_y:0.000000,invert_y:+ motionleft=engine:sdl,motion:0,guid:030000007e0500000920000000006800 motionright=engine:sdl,motion:0,guid:030000007e0500000920000000006800

if it not work, use this program to know guid. https://www.generalarcade.com/gamepadtool/ replace sdl2.dll with the sdl2.dll from yuzu In my case is: 030000007e0500000920000000006800

I don't know why not rumble, I think they used this code: https://wiki.libsdl.org/SDL_JoystickRumble I think for the procontroller it is this: https://wiki.libsdl.org/SDL_JoystickRumbleTriggers but I'm still trying to understand...

if slow video, modify this options: cpu_accuracy = 2 gpu_accuracy = 2

I'm not sure, but the other yuzu.exe use SDL2, so it should be the same...

modify the file: %appdata%\yuzu\config\qt-config.ini for example: player_0_button_a="engine:keyboard,code:67,toggle:0" to player_0_button_a="engine:sdl,guid:030000007e0500000920000000006800,button:0"

good luck. regards.

mcastellonc201 avatar Aug 23 '22 23:08 mcastellonc201

SDL_JoystickRumbleTriggers is for the rumble of ds5 pads. Those controllers have rumble motors on the triggers :P

If the SDL2.dll from others sources work I need the commit of that source so I can make an equivalent for yuzu. Sadly the one you provided is at most from 2018. So it doesn't have support for pro controllers nor ds5 controllers.

german77 avatar Aug 24 '22 00:08 german77

I have to use BetterJoy for other emulators, such as Dolphin for example. That's why I use it, and after installing it, Yuzu doesn't recognize the pro controller anymore, even without BetterJoy open. So... I don't really want to uninstall BetterJoy and its drivers when wanting to play Yuzu, that's the problem.

Got it. I will see if I can do something from my side. Since this issue is probably on SDL and not yuzu

german77 avatar Aug 24 '22 00:08 german77

SDL_JoystickRumbleTriggers is for the rumble of ds5 pads. Those controllers have rumble motors on the triggers :P

If the SDL2.dll from others sources work I need the commit of that source so I can make an equivalent for yuzu. Sadly the one you provided is at most from 2018. So it doesn't have support for pro controllers nor ds5 controllers.

Thanks, I will try to study the source.

mcastellonc201 avatar Aug 24 '22 02:08 mcastellonc201

SDL_JoystickRumbleTriggers is for the rumble of ds5 pads. Those controllers have rumble motors on the triggers :P

If the SDL2.dll from others sources work I need the commit of that source so I can make an equivalent for yuzu. Sadly the one you provided is at most from 2018. So it doesn't have support for pro controllers nor ds5 controllers.

Please trying to hide the procontroller for the others programs, only yuzu. https://github.com/ViGEm/HidHide

mcastellonc201 avatar Aug 24 '22 14:08 mcastellonc201