In Linux selbst kann ich auf den Joystick über /dev/input/js0 zugreifen und mit jstest aus dem joystick 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
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
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.