Hi, I want to play some old games again using the Dolphin emulator. As controller I use the PS5 (Dualsense) one.
I used that exact setup already some months ago (around December last year) without any problems.
But nowadays, if I connect the controller via bluetooth, the games in Dolphin run with really bad performance, so that they even get unplayable.
However, if I disconnect the controller via bluetooth, the games run smooth again. I can even use the same controller via USB and everything is still smooth, so the problem only happens when using bluetooth.
So the problem is not dolphin-emu specific, but now affects all games.
Somehow the fact that the PS5 controller is connected via bluetooth lowers my graphics performance. As soon as I disconnect it, performance instantly goes up again.
What. The. Hell.
Edit: Bonus: The performance gets even worse if I use mouse and keyboard while the controller is connected. When I do this, CS:GO constantly runs at 10 - 30 FPS. If I use the controller to play the game and do not move my mouse, it sometimes has some good seconds and runs nearly smooth, but still drops frames every now and then.
Recently 1.9.5 stopped working in DX11 and DX12 mode on the Series X (loads with a blank screen) even after fresh installs, which I think may be a result of an Xbox system software updated released on the 22/08/2021.
The first issue is that direction mapping is messed up since 1.9.6 for games that use the Wii (sideways) controller mode - switching the controller input to sideways no longer corrects the D-Pad orientation to be the right way around for a game expecting a sideways controller such as New Super Mario Bros Wii, which is the main game we play in Wii emulation.
I used makexapp.exe to extract the UWP installer for Retroarch 1.9.5 to obtain the old version of dolphin_libretro.dll, and then copied that into place in the installation on the Xbox to downgrade just the Dolphin emulation core to the version shipped with 1.9.5 and that has fixed all the issues - IR support is back and so is tilt support. In fact everything just started working properly again without any changes as my previous controller profiles started working again.
I have set up my wii games to use a real wiimote as default and automatically switch to arcade controller for the games that don't need a real wiimote to play. The games I use the arcade controller to play are:
I'm interested in this too. I plan to add a couple of xbox controllers to my cabinet for wii and GameCube games. Quickly learned that any system that uses analog sticks on its controllers won't play so well with the arcade controls.
Hello, could anyone help, I would like to configure under dolphin Hs to detect original wiilote etc. and pads from xboxa360, ps3, ps2 and preferably if it is possible to detect the mini ipad arcade panel ?
Hi, for some reason dolphin emulator will not recognise any controls (gamepad or keyboard) when trying to play Gamecube. Ive tried to configure them manually using the Dolphin application (using the F1 key to access), but still cannot get it to recognise anything.
riom
what kind of controller do you use?
and did you configre the button-mapping within batocera (Controller Settings, Configure A Controller)?
do the controls work in other systems like SNES for example?
Why do you open dolphin emulator within Applications?
You should just open the games via gameslist in Emulation Station and your controller should then work out-of-the-box (except, there is a compatability issue with Gamesir GS3 bluetooth controller, then this has to be investigated)
i know that there are some pads, that have issues, especially with dolphin (and Dreamcast (reicast or flycast) i believe).
at least i remember some users reporting issues with certain pads (xbox 360 clones for example).
maybe the GameSir GS3 (wirelessly) and that unbranded generic Bluetooth USB controller are also pads, that have some issues/incompatability with dolphin also?
best is to come to the discord and ask there under #support
regarding your issue with xbox 360 controller i will try to reproduce (i also own some Xbox 360 wireless controllers)
is it only the down direction of the left analog stick, that is not working or are there other issues as well?
/dev/input/jsX maps to the Joystick API interface and /dev/input/event* maps to the evdev ones (this also includes other input devices such as mice and keyboards). Symbolic links to those devices are also available in /dev/input/by-id/ and /dev/input/by-path/ where the legacy Joystick API has names ending with -joystick while the evdev have names ending with -event-joystick.
While SDL1 defaults to evdev interface you can force it to use the old Joystick API by setting the environment variable SDL_JOYSTICK_DEVICE=/dev/input/js0. This can help many games such as X3. SDL2 supports only the new evdev interface.
As you can see, there are many different modules related to getting your joystick working in Linux, so everything is not covered here. Please have a look at the documentation mentioned above for details.
You need to load a module for your gameport (ns558, emu10k1-gp, cs461x, etc...), a module for your joystick (analog, sidewinder, adi, etc...), and finally the kernel joystick device driver (joydev). You can load the module at boot, or simply modprobe it. The gameport module should load automatically, as this is a dependency of the other modules.
You need to get USB working, and then modprobe your gamepad driver, which is usbhid, as well as joydev. If you use a usb mouse or keyboard, usbhid will be loaded already and you just have to load the joydev module.
There are a lot of applications that can test this old API, jstest from the joyutils package is the simplest one. If the output is unreadable because the line printed is too long you can also use graphical tools. KDE Plasma has a built in one in System Settings > Input Devices > Game Controller. There is jstest-gtk-gitAUR as an alternative.
The new 'evdev' API can be tested using the SDL2 joystick test application or using evtest from evtest or evtest-qt from evtest-qt-gitAUR. Install sdl2-jstest-gitAUR[broken link: package not found] and then run sdl2-jstest --test 0. Use sdl2-jstest --list to get IDs of other controllers if you have multiple ones connected.
Go to -tester.com/. Currently, testing vibration and producing a visual of the gamepad is supported in Chromium but not Firefox. Additionally, as of version 107.0.5304.121-1, Chromium can read Joystick devices but not evdev.
1000 is the default value, but you can set anything between 0 and {{30000. To get the axis number see the "Testing Your Configuration" section of this article.If you already have an option with a specific axis just type in the deadzone=value at the end of the parameter separated by a space.
The easiest way is using jstest-gtk from jstest-gtk-gitAUR. Select the joystick you want to edit, click the Properties button. On this new window, click the Calibration button (do not click Start Calibration after that). You can then set the CenterMin and CenterMax values, which control the center deadzone, and RangeMin and RangeMax, which control the end of throw deadzones. Note that the calibration settings are applied when the application opens the device, so you need to restart your game or test application to see updated calibration settings.
If the commands above give you an empty output, it could be because your controller is connected via Bluetooth, making these unique attributes only visible on the parent device(s). To mitigate this, you could try finding other unique attributes by running:
Imagine that you tested your gamepad with evtest-qt, and find out that your left joystick cannot reach the maximum read value when you direct it to top most position. The side effect of this is that in some games (for example, HITMAN 2) the character cannot run.
Run xboxdrv and determine how the problematic axis is called. In this case it is Y1. Now try to direct it to top most position several times, and determine the lowest value that you saw. Imagine it is 29426. Now to be on a safe side, we take the value that is lower than that, like 29000. Run the command:
Nice thing about xboxdrv is that it exports resulting device as both old Joystick API and new style evdev API so it should be compatible with basically any application. You can now see in jstest that the values of axis 1 (corresponds to vertical axis of left joystick) is read from 0 to -32767, and in evtest-qt that you can reach the maximum value. And your character in game can run.
this maps the EV_ABS event with id of 40 and 41 (use xboxdrv with --evdev-debug to see the events registered), which is the normally inaccessible "mouse pointer" on the throttle, to first gamepad joystick and throttles to second joystick, it also clamps the top and lower ranges as they not always register fully.
this maps the 3 joystick axes to gamepad axes and changes the calibration (min value, centre value, max value), dead zones (negative side, positive side, flag to turn smoothing) and finally change of response curve to a more flat one in the middle.
You can also modify the responsiveness by setting the sen (sensitivity) parameter. Setting it to value of 0 will give you a linear sensitivity, value of -1 will give very insensitive axis while value of 1 will give very sensitive axis. You can use intermediate values to make it less or more sensitive. Internally xboxdrv uses a quadratic formula to calculate the resulting value, so this setting gives a more smooth result than resp shown above.
If you want to play games with your gamepad, you might want to disable its joystick control over mouse cursor. To do this, edit /etc/X11/xorg.conf.d/51-joystick.conf (create if it does not exists) so that it looks like this:
This is a good solution for systems where restarting Xorg is a rare event because it is a static configuration loaded only on X startup. The example runs on a Kodi media PC, controlled with a Logitech Cordless RumblePad 2. Due to a problem with the d-pad (a.k.a. "hat") being recognized as another axis, Joy2key was used as a workaround. Since kodi version 11.0 and joy2keyAUR 1.6.3-1, this setup no longer worked and the following was created for letting Xorg handle joystick events.
ff7609af8f