Kein Joystick unter der DOSBox in Debian (erledigt)

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
Cordess
Beiträge: 422
Registriert: 09.01.2006 00:37:22

Kein Joystick unter der DOSBox in Debian (erledigt)

Beitrag von Cordess » 23.11.2023 00:58:40

Ich wollte meinen Joystick in einer DOS Anwendung, die für Joysticks zum Kalibrieren da ist, in der DOSBox unter Linux ausprobieren, aber leider scheint der Joystick in der DOSBox nicht erkannt zu werden.

In Linux selbst kann ich auf den Joystick über /dev/input/js0 zugreifen und mit jstest aus dem Debianjoystick Paket auch testen.
Er wird unter Linux also erkannt und funktioniert dort auch, nur in der DOSBox, da ist er nicht zugänglich.

Code: Alles auswählen

$ jstest /dev/input/js0 
Driver version is 2.1.0.
Joystick (Microsoft Microsoft SideWinder Precision Pro (USB)) has 6 axes (X, Y, Rz, Throttle, Hat0X, Hat0Y)
and 9 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn, TopBtn2, PinkieBtn, BaseBtn, BaseBtn2, BaseBtn3).
Testing ... (interrupt to exit)
Axes:  0:     0  1:     0  2: -2622  3:     0  4:     0  5:     0 Buttons:  0:off  1:off  2:off  3:off  4:off  5:off  6:off  7:off  8:off ^[^C
Das Gamepad wird in Linux auch erkannt, aber auch das ist in der DOSBox nicht zugänglich:

Code: Alles auswählen

$ jstest /dev/input/js1
Driver version is 2.1.0.
Joystick (Xbox 360 Wireless Receiver) has 8 axes (X, Y, Z, Rx, Ry, Rz, Hat0X, Hat0Y)
and 15 buttons (BtnA, BtnB, BtnX, BtnY, BtnTL, BtnTR, BtnSelect, BtnStart, BtnMode, BtnThumbL, BtnThumbR, (null), (null), (null), (null)).
Testing ... (interrupt to exit)
Axes:  0:  4779  1:  4615  2:-32767  3:  -599  4:  -690  5:-32767  6:     0  7:     0 Buttons:  0:off  1:off  2:off  3:off  4:off  5:off  6:off  7:off  8:off  9:off 10:off 11:off 12:off 13:off 14:off ^C

Die Joystick Sektion meiner DOSBox Konfigurationsdatei sieht folgendermaßen aus:

Code: Alles auswählen

[joystick]                                                                      
# joysticktype: Type of joystick to emulate: auto (default), none,              
#               2axis (supports two joysticks),                                 
#               4axis (supports one joystick, first joystick used),             
#               4axis_2 (supports one joystick, second joystick used),          
#               fcs (Thrustmaster), ch (CH Flightstick).                        
#               none disables joystick emulation.                               
#               auto chooses emulation depending on real joystick(s).           
#               (Remember to reset dosbox's mapperfile if you saved it earlier) 
#               Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.    
#        timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
#     autofire: continuously fires as long as you keep the button pressed.      
#       swap34: swap the 3rd and the 4th axis. Can be useful for certain joysticks.
#   buttonwrap: enable button wrapping at the number of emulated buttons.       
                                                                                
joysticktype=auto                                                              
#joysticktype=4axis_2                                                            
timed=true                                                                      
#timed=false                                                                    
autofire=false                                                                  
swap34=false                                                                    
buttonwrap=false   
Die Optionen, die mit einem # kommentiert sind, habe ich bereits ausprobiert, die Gegenstücke wurden dazu natürlich kommentiert, aber ohne Erfolg.
Kann man vielleicht irgendwie die Gerätedatei /dev/input/js0 der DOSBox zuweisen?

Oder könnte es vielleicht daran liegen, dass die DOSBox im Debian Repository, anders als DOSBOX-X oder DOSBox Staging noch die SDL 1.x verwendet? (Anmerkung: bei den letzteren beiden ist der SDL 2.x Port bereits in Arbeit)

Code: Alles auswählen

$ ldd /usr/bin/dosbox
        linux-vdso.so.1 (0x00007ffd38b6f000)
        libSDL_sound-1.0.so.1 => /lib/x86_64-linux-gnu/libSDL_sound-1.0.so.1 (0x00007faff53aa000)
        libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007faff52a1000)
        libSDL-1.2.so.0 => /lib/x86_64-linux-gnu/libSDL-1.2.so.0 (0x00007faff2165000)
        libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007faff212f000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007faff2110000)
        libSDL_net-1.2.so.0 => /lib/x86_64-linux-gnu/libSDL_net-1.2.so.0 (0x00007faff5298000)
        libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007faff1fce000)
        libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007faff1f47000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007faff1c00000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007faff1e68000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007faff1e48000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faff1a1f000)
        libmikmod.so.3 => /lib/x86_64-linux-gnu/libmikmod.so.3 (0x00007faff19da000)
        libvorbisfile.so.3 => /lib/x86_64-linux-gnu/libvorbisfile.so.3 (0x00007faff1e3d000)
        libFLAC.so.12 => /lib/x86_64-linux-gnu/libFLAC.so.12 (0x00007faff1975000)
        libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x00007faff1e33000)
        libspeex.so.1 => /lib/x86_64-linux-gnu/libspeex.so.1 (0x00007faff195a000)
        /lib64/ld-linux-x86-64.so.2 (0x00007faff5421000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007faff528f000)
        libpulse-simple.so.0 => /lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007faff1e2c000)
        libpulse.so.0 => /lib/x86_64-linux-gnu/libpulse.so.0 (0x00007faff1906000)
        libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007faff18f1000)
        libcaca.so.0 => /lib/x86_64-linux-gnu/libcaca.so.0 (0x00007faff182a000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007faff1e27000)
        libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007faff1800000)
        libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007faff1747000)
        libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007faff1713000)
        libSDL2-2.0.so.0 => /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007faff153a000)
        libopenal.so.1 => /lib/x86_64-linux-gnu/libopenal.so.1 (0x00007faff1451000)
        libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007faff1424000)
        libpulsecommon-16.1.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-16.1.so (0x00007faff139e000)
        libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007faff1348000)
        libslang.so.2 => /lib/x86_64-linux-gnu/libslang.so.2 (0x00007faff0e00000)
        libncursesw.so.6 => /lib/x86_64-linux-gnu/libncursesw.so.6 (0x00007faff130e000)
        libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007faff12db000)
        libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007faff1e1c000)
        libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007faff0a00000)
        libsamplerate.so.0 => /lib/x86_64-linux-gnu/libsamplerate.so.0 (0x00007faff0c92000)
        libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007faff12ce000)
        libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007faff12ba000)
        libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007faff12b2000)
        libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007faff12a5000)
        libXss.so.1 => /lib/x86_64-linux-gnu/libXss.so.1 (0x00007faff12a0000)
        libdrm.so.2 => /lib/x86_64-linux-gnu/libdrm.so.2 (0x00007faff128a000)
        libgbm.so.1 => /lib/x86_64-linux-gnu/libgbm.so.1 (0x00007faff1279000)
        libwayland-egl.so.1 => /lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007faff1272000)
        libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007faff1260000)
        libwayland-cursor.so.0 => /lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007faff1256000)
        libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007faff1210000)
        libdecor-0.so.0 => /lib/x86_64-linux-gnu/libdecor-0.so.0 (0x00007faff1205000)
        libsndio.so.7.0 => /lib/x86_64-linux-gnu/libsndio.so.7.0 (0x00007faff11f0000)
        libsndfile.so.1 => /lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007faff0c07000)
        libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007faff11eb000)
        libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007faff0930000)
        libasyncns.so.0 => /lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007faff11e4000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007faff11cc000)
        libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007faff11bf000)
        libwayland-server.so.0 => /lib/x86_64-linux-gnu/libwayland-server.so.0 (0x00007faff091a000)
        libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007faff08ef000)
        libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007faff11b3000)
        libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007faff0844000)
        libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x00007faff07e6000)
        libmpg123.so.0 => /lib/x86_64-linux-gnu/libmpg123.so.0 (0x00007faff078a000)
        libmp3lame.so.0 => /lib/x86_64-linux-gnu/libmp3lame.so.0 (0x00007faff0713000)
        libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007faff0707000)
        libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007faff05c0000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007faff0591000)
        libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007faff04d5000)
        liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007faff04af000)
        libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007faff04a2000)
        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007faff047a000)

Hat irgendjemand einen Joystick oder ein Gamepad unter der DOSBox in Linux zum Laufen bekommen?

Was ich nicht suche ist eine Lösung, wie man bspw. einzelne Tasten auf den Joystick ummappen kann, denn ich brauche die analogen Achsen.

EDIT:
Hat sich erledigt, es lag an dem Joystick Testprogramm.

Antworten