Comments (11)
Are you using the hidraw mode with ds4drv? If you are, then I think that is the problem. The extra joystick device that is created is there, but unresponsive. I think it causes trouble with the way some games initialize game controllers. Try testing it in raw mode (having to put the DS4 into sync mode each time). This should work, though it's not as easy.
from ds4drv.
blarg. I'll try that, but I'll not be happy XD
still, very annoying issue, would hope that it could be fixed at some point :)
from ds4drv.
I would close this issue, but changing to non-hidraw mode is more of a workaround than an actual fix.
from ds4drv.
hrm... well, how does this exactly work, then. I've held the PS+Share buttons, got the blink, but no results...
ah nevermind. powered it on normally and all is well. But its still rather strange that hidraw would kill the functionality of these games :/
from ds4drv.
I don't think anyone has found a way to remove the other js devices (the ones that are not being used anymore when using hidraw mode). It must be possible, as xboxdrv removes them in a similar fashion I believe.
from ds4drv.
xboxdrv uses the EVIOCGRAB flag on the joystick device file handler in order to have exclusive access to a joystick device. That way, other programs will not use the joystick device so the controller is only seen once. Here is an example. https://github.com/Grumbel/xboxdrv/blob/master/src/controller/evdev_controller.cpp#L70
if (m_grab)
{ // grab the device, so it doesn't broadcast events into the wild
int ret = ioctl(m_fd, EVIOCGRAB, 1);
if ( ret == -1 )
{
close(m_fd);
throw std::runtime_error(strerror(errno));
}
}
from ds4drv.
I took a look at python-evdev, and it does have EVIOCGRAB support, simply called "grab". It also looks like ds4drv is already using it (you can see it in hidraw.py, in the HidrawDS4Device class).
This seems to make sense, since ds4drv DOES grab the device properly, it just leaves the non-responsive one behind. Maybe the bit of code that xboxdrv uses to "hide" the device is elsewhere, or maybe python-evdev doesn't implement those bits of EVIOCGRAB correctly...
from ds4drv.
One thing that might help with this problem is to try changing the permissions of the original joystick device file after grabbing it in the application. Based on some experimenting, removing read access for that joystick device will ensure that applications that are launched later will skip over those devices; it will not affect applications that have already opened the joystick device. That way, a game will only see 1 joystick device as opposed to 2.
from ds4drv.
@Ryochan7 How do I figure out how to do that? Pretty sure I'm having this issue. DS4 works for Steam Big Picture but not in any game. Makes sense that maybe it's being mapped to a player 2 or some such.
from ds4drv.
You can try to remove the original device (when ds4drv is already running). E.g. if the original device is /dev/input/js0
then just do this:
sudo rm /dev/input/js0
The original device should return when you reconnect the controller.
from ds4drv.
That should work as well. For my SteamOS box, I have it set up where the steam user is the owner of all joystick devices. It is easier to perform chmod 000 <device>
in that case as opposed to having to use sudo to remove the original device file.
from ds4drv.
Related Issues (20)
- Remap buttons HOT 2
- Keeps telling me to "Make sure your bluetooth device is powered up with 'hciconfig hciX up'" HOT 2
- Strange Problem when I use ds4drv. I have a new"SyntaxError: invalid syntax" HOT 1
- Installer wont run HOT 1
- Limit the number of simultaneous controllers
- Joystick automatically moves
- Does CUH-ZCT1x has any support? HOT 2
- I cannot find the systemd service yet autostart works?
- PS4 controller randomly stops sending packets, stays connected HOT 1
- How to check dualshock battery state
- Hcitools Clock Returned Failed! Can't Operate HOT 1
- Knock-off controller led color doesn't change using Bluetooth HOT 1
- Is it possible to use trackpad as a control button and not mouse ?
- How to change light brightness of ds4
- configparser.DuplicateOptionError: While reading from '/etc/ds4drv.conf' HOT 3
- OSError: [Errno 5] Input/output error HOT 3
- [Feature request] Add ability to hide DS4 that is emulated to be an Xinput device
- Gyro mapping HOT 2
- AttributeError: module 'configparser' has no attribute 'SafeConfigParser'. Did you mean: 'RawConfigParser'? HOT 1
- fatal error - Python.h HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ds4drv.