mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-04-25 06:06:03 +03:00
[GH-ISSUE #4435] Joypads are not detected in Qt version ( Linux Qt4 and Qt5 ) #1808
Labels
No labels
Atrac3+
Audio
CPU emulation
D3D11
D3D9 (removed)
Depth / Z
Feature Request
Font Atlas
GE emulation
Guardband / Range Culling
HLE/Kernel
I/O
Input/Controller
MP3
Multithreading
Needs hardware testing
Networking/adhoc/infrastructure
No Feedback / Outdated?
OpenGL
PGF / sceFont
PSMF / MPEG
Platform-specific (Android)
Platform-specific (Windows)
Platform-specific (iOS)
PowerVR GPU
SDL2
Saving issue
User Interface
Vulkan
arm64jit
armjit
armv6
x86jit
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/ppsspp#1808
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @fastrizwaan on GitHub (Nov 3, 2013).
Original GitHub issue: https://github.com/hrydgard/ppsspp/issues/4435
Qt version is not detecting joysticks
bash-4.2$ ./SDLJoyTest-linux32
There are 2 joysticks attached
Joystick 0: Twin USB Joystick
axes: 4
balls: 0
hats: 1
buttons: 12
Joystick 1: Twin USB Joystick
axes: 4
balls: 0
hats: 1
buttons: 12
SDL version is working as expected, including the hat keys with sdl :)
@xsacha commented on GitHub (Nov 4, 2013):
Is the Qt version successfully linking SDL?
The Qt version uses SDL to do the joystick.
@fastrizwaan commented on GitHub (Nov 4, 2013):
compile time (just pasting a single line)
g++ -c -m64 -pipe -Wno-unused-function -Wno-unused-variable -Wno-multichar -Wno-uninitialized -Wno-ignored-qualifiers -Wno-missing-field-initializers -Wno-unused-parameter -std=c++0x -ffast-math -fno-strict-aliasing -msse2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O3 -Wall -W -D_REENTRANT -fPIE -DUSING_QT_UI -DUSE_FFMPEG -D__STDC_CONSTANT_MACROS -DQT_HAS_SDL -D_GNU_SOURCE=1 -D_REENTRANT -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_MULTIMEDIA_LIB -DQT_WIDGETS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib64/qt5/mkspecs/linux-g++-64 -I. -I../ext/zlib -I../native/ext/glew -I../Common -I../ffmpeg/linux/x86_64/include -I.. -I../Common -I../native -I../Qt -I/usr/include/SDL -I/usr/include/qt5 -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtMultimedia -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -I. -o EmuThread.o EmuThread.cpp
bash-4.2$ ldd PPSSPPQt
linux-vdso.so.1 => (0x00007fffa87fe000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003e35c00000)
libz.so.1 => /lib64/libz.so.1 (0x0000003e36400000)
libSDL-1.2.so.0 => /lib64/libSDL-1.2.so.0 (0x0000003e49400000)
libQt5OpenGL.so.5 => /lib64/libQt5OpenGL.so.5 (0x0000003d38400000)
libQt5Multimedia.so.5 => /lib64/libQt5Multimedia.so.5 (0x00007f6bc0ef6000)
libQt5Widgets.so.5 => /lib64/libQt5Widgets.so.5 (0x0000003d35200000)
libQt5Network.so.5 => /lib64/libQt5Network.so.5 (0x0000003d34600000)
libQt5Gui.so.5 => /lib64/libQt5Gui.so.5 (0x0000003d34a00000)
libQt5Core.so.5 => /lib64/libQt5Core.so.5 (0x0000003d33a00000)
libGL.so.1 => /usr/lib64/nvidia/libGL.so.1 (0x0000003e45400000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003e36000000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000003e40c00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003e36800000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003e37c00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003e35800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003e35000000)
libpulse.so.0 => /lib64/libpulse.so.0 (0x0000003e56000000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x0000003e38800000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003e37800000)
libXext.so.6 => /lib64/libXext.so.6 (0x0000003e3a000000)
libX11.so.6 => /lib64/libX11.so.6 (0x0000003e39400000)
libssl.so.10 => /lib64/libssl.so.10 (0x0000003e51c00000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x0000003e4bc00000)
libpng15.so.15 => /lib64/libpng15.so.15 (0x0000003e3d400000)
libicui18n.so.50 => /lib64/libicui18n.so.50 (0x0000003e5cc00000)
libicuuc.so.50 => /lib64/libicuuc.so.50 (0x0000003e4fc00000)
libpcre16.so.0 => /lib64/libpcre16.so.0 (0x0000003d34200000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x0000003e3bc00000)
librt.so.1 => /lib64/librt.so.1 (0x0000003e36c00000)
libnvidia-tls.so.325.15 => /usr/lib64/nvidia/tls/libnvidia-tls.so.325.15 (0x0000003e42000000)
libnvidia-glcore.so.325.15 => /usr/lib64/nvidia/libnvidia-glcore.so.325.15 (0x0000003e42800000)
libjson.so.0 => /lib64/libjson.so.0 (0x0000003e54000000)
libpulsecommon-3.0.so => /usr/lib64/pulseaudio/libpulsecommon-3.0.so (0x0000003e57e00000)
libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x0000003e3dc00000)
libxcb.so.1 => /lib64/libxcb.so.1 (0x0000003e39c00000)
libICE.so.6 => /lib64/libICE.so.6 (0x0000003e50800000)
libSM.so.6 => /lib64/libSM.so.6 (0x0000003e50000000)
libXtst.so.6 => /lib64/libXtst.so.6 (0x0000003e53000000)
libwrap.so.0 => /lib64/libwrap.so.0 (0x0000003e55c00000)
libsndfile.so.1 => /lib64/libsndfile.so.1 (0x0000003e58e00000)
libasyncns.so.0 => /lib64/libasyncns.so.0 (0x0000003e54800000)
libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x0000003e3ac00000)
libcap.so.2 => /lib64/libcap.so.2 (0x0000003e51400000)
libffi.so.6 => /lib64/libffi.so.6 (0x0000003e38400000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x0000003e4e400000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x0000003e4ec00000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003e4d400000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000003e4d800000)
libicudata.so.50 => /lib64/libicudata.so.50 (0x0000003e56400000)
libjson-c.so.2 => /lib64/libjson-c.so.2 (0x0000003e55800000)
libXau.so.6 => /lib64/libXau.so.6 (0x0000003e39800000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003e3d800000)
libXi.so.6 => /lib64/libXi.so.6 (0x0000003e3d000000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003e52c00000)
libgsm.so.1 => /lib64/libgsm.so.1 (0x0000003e55000000)
libFLAC.so.8 => /lib64/libFLAC.so.8 (0x0000003e59800000)
libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x0000003e59200000)
libvorbis.so.0 => /lib64/libvorbis.so.0 (0x0000003e50c00000)
libogg.so.0 => /lib64/libogg.so.0 (0x0000003e50400000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003e38000000)
libattr.so.1 => /lib64/libattr.so.1 (0x0000003e4cc00000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000003e4e800000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003e4dc00000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003e37400000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x0000003e37000000)
Any other way to find out?
@xsacha commented on GitHub (Nov 4, 2013):
Yes, yours is linking SDL.
Maybe it (Qt version) needs some updating.
@jtliaw commented on GitHub (Nov 5, 2013):
xsacha your mean is update my pc QT version?
@xsacha commented on GitHub (Nov 5, 2013):
No, the Qt code needs to be updated. It used to work once but obviously doesn't work anymore.
Unfortunately I don't own any joysticks.
@fastrizwaan commented on GitHub (Nov 21, 2013):
xsacha, I'd like to gift you PS2 joystick and ps2 to usb converter, I'll pay by credit card. you just choose it.
Here's a hint:
These are the things you'll need:
http://www.ebay.com/itm/Dual-PS2-Playstation-2-II-To-PC-USB-Game-Controller-Converter-Convertor-Adapter-/400553277307
http://www.ebay.com/itm/Original-Official-Sony-Playstation-2-Dual-Shock-2-Controller-PS2-/190794103252?pt=US_Video_Game_Controllers&hash=item2c6c36f9d4
@xsacha commented on GitHub (Nov 21, 2013):
I already have a Moga Pro and a SteelSeries Free. Would they work?
@fastrizwaan commented on GitHub (Nov 21, 2013):
I have wired joysticks, yours seems like bluetooh versions, android kernel is linux only, I hope if you can setup bluetooth (dongle might be required for) pairing with your joysticks, you can use them.
bluetooth ps3 controller on ubuntu
http://www.youtube.com/watch?v=YNhc2y05JBU
why not get a wired ps2 controller with usb adapter, that'll help us too!
@fastrizwaan commented on GitHub (Nov 21, 2013):
The only thing stopping from Qt version to be fully usable is the lack of joystick support :(
@fastrizwaan commented on GitHub (Nov 21, 2013):
xsacha, I think the joystick are not initialized in Qt version, may be sdl and qt are fighting for input,
http://www.libsdl.org/release/SDL-1.2.15/docs/html/guideinput.html
Moreover, please let me buy you a ps2 wired controller, that'd really helpful for you to fix the joystick issues and it will make Qt version perfect and equal to windows version. Please give your paypal ID. please!
@Bigpet commented on GitHub (Nov 21, 2013):
I don't think Qt has facilities for joystick/pad input which is why we want to use SDL for that.
@fastrizwaan commented on GitHub (Nov 21, 2013):
Yay, I found the previous version where Joystick used to work Qt!!!
Please, please please, re-implement the joystick code into Qt
https://github.com/jeid3/ppssppFix
git clone https://github.com/jeid3/ppssppFix.git
cd ppssppFix
git submodule update --init
cmake .
make
cd Qt
qmake-qt4 PPSSPPQt.pro
make
./PPSSPPQt ; # yay
@Bigpet commented on GitHub (Nov 21, 2013):
I can't find that source in the history of this repository, we need the permission of the author to just pull from him
edit: nvm it's there I'm stupid
f5246c07e3Anyway, the easiest solution for now would be to just let the configuration be done in the touch interface and just add support to forward the SDL joypad events. Reinstating the gui unchanged would just lead to having 2 input systems potentially clash
@fastrizwaan commented on GitHub (Nov 21, 2013):
I hope jeid3 is known to ppsspp devs; https://github.com/jeid3
Henrik, sacha, now you have the source too, 🎯 this is the last piece of Qt version to make it fully usable. Thanks.
@xsacha commented on GitHub (Nov 22, 2013):
It's nothing to do with jeid3. Joysticks used to work in PPSSPPQt a few months ago. Since then we have completely changed the input system from a hardcoded mess to one where we dynamically map keys. To fix the Qt build, we had to remove the hardcoded joystick keys.
As I do not have a joystick to test with, I never added joystick support back. I'm sure someone will.
@Bigpet commented on GitHub (Nov 22, 2013):
I can re-add them (at least in the basic way that the SDL port does it)
@xsacha commented on GitHub (Nov 22, 2013):
Fixed by
github.com/hrydgard/ppsspp@7ec0069f4e@fastrizwaan commented on GitHub (Nov 22, 2013):
sacha, Hamsters love you for joystick support!

thanks a lot!